在sql中插入数据时遇到一些问题,有些文本带有引号,如text's

问题描述 投票:0回答:3

这是我的 JSON 数组 我正在尝试使用此代码创建一个 JSON 数组,然后将数据插入到我的 sql 中,但它不适用于引号,例如“文本带有引号”,如果当我插入不带 的相同文本时,它工作正常。

$custom_data = array();
$custom_data['seo_options'] = array("meta-title" => "The text is with inverted comma's", "meta-description" => "some data here", "meta-keywords" => "");

$sql2 = "INSERT INTO posts_meta (post_id,meta_key,meta_value) VALUES ('".$post_id."', 'custom_data', '".json_encode($custom_data)."')";
mysqli_query($conn2,$sql2);
php sql mysqli
3个回答
-1
投票

首先,您应该写下您遇到的问题类型(例如错误消息(如果有))。

但是,问题可能是 ' 符号破坏了查询。在执行查询之前尝试转义它(addslashes 应该可以正常工作)并检查它是否有效。

例如:

$custom_data['seo_options']['meta-title'] = addslashes($custom_data['seo_options']['meta-title']);

-1
投票

错误描述:您的SQL语法有错误;检查与您的 MariaDB 服务器版本相对应的手册,了解要使用的正确语法。

这是唯一的问题,我刚刚升级了 MariaDB 版本,问题就解决了。

谢谢大家的支持。


-2
投票

尝试使用addslashes,如下所示:

mysqli_query($conn2,addslashes($sql2));

或者仅在 json/array 的一部分上。 但我建议你使用准备好的声明。

© www.soinside.com 2019 - 2024. All rights reserved.