这是我的 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);
首先,您应该写下您遇到的问题类型(例如错误消息(如果有))。
但是,问题可能是 ' 符号破坏了查询。在执行查询之前尝试转义它(addslashes 应该可以正常工作)并检查它是否有效。
例如:
$custom_data['seo_options']['meta-title'] = addslashes($custom_data['seo_options']['meta-title']);
错误描述:您的SQL语法有错误;检查与您的 MariaDB 服务器版本相对应的手册,了解要使用的正确语法。
这是唯一的问题,我刚刚升级了 MariaDB 版本,问题就解决了。
谢谢大家的支持。
尝试使用addslashes,如下所示:
mysqli_query($conn2,addslashes($sql2));
或者仅在 json/array 的一部分上。 但我建议你使用准备好的声明。