php如何将逗号分隔的多个json格式的字符串作为一个值插入到mysql表中? [复制]
Posted
技术标签:
【中文标题】php如何将逗号分隔的多个json格式的字符串作为一个值插入到mysql表中? [复制]【英文标题】:php how to insert comma separated multiple strings in json format as one value into mysql table? [duplicate] 【发布时间】:2016-09-26 14:25:18 【问题描述】:在 php 中,代码如下:
$j_id = $jData[$j]['itop_id'];
$res = '"name":"' . $jData[$j]['label'] . '","x":'. $jData[$j]['x'] . ',"y":' . $jData[$j]['y'] . ',"url":"' . $jData[$j]['icon_url'] . '"';
我可以得到值:
$j_id = 1;
$res = "name":"AOL network","x":1032.5,"y":180,"url":"http://localhost/pathfind/web/env-production/itop-config-mgmt/images/business-process.png"
当我尝试使用以下代码将 $j_id 和 $res 的值插入 mysql 表时:
$sql = 'INSERT INTO coordinate_info (id,coordinate_res) VALUES ('.$j_id.','. $res.')';
我得到了错误:
Error: INSERT INTO coordinate_info (id,coordinate_res) VALUES (1,"name":"AOL network","x":1032.5,"y":180,"url":"http://localhost/pathfind/web/env-production/itop-config-mgmt/images/business-process.png") You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near ':"AOL network","x":1032.5,"y":180,"url":"http://localhost/pathfind/web/env-produ' at line 1
我想将逗号分隔的多个 json 格式的字符串作为一列值插入到 mysql 表中。 你能给我一些建议吗? 在 php 中,如何将逗号分隔的值作为一个值保存到 mysql 表中?
【问题讨论】:
准备好的语句或转义你的字符串会很好 会有所帮助:$sql = "INSERT INTO coordinate_info (id,coordinate_res) VALUES (".$j_id.",'$res')";
【参考方案1】:
您应该真正使用准备好的语句和参数。如果安全不是问题,您只需将 SQL 更改为如下所示:
$sql = 'INSERT INTO coordinate_info (id,coordinate_res) VALUES ('.$j_id.',"'. $res.'")';
【讨论】:
我认为您的查询类似于INSERT INTO mytable (test) VALUES (""test"")
将不起作用。
如果你回显我的 $sql 变量,你会得到:INSERT INTO coordinate_info (id,coordinate_res) VALUES (1, "string")
不,不是,我查过了。
老兄,如果你有这个代码$j_id = 1; $res = 'string'; $sql = 'INSERT INTO coordinate_info (id,coordinate_res) VALUES ('.$j_id.',"'. $res.'")'; echo $sql;
你会得到以下输出:INSERT INTO coordinate_info (id,coordinate_res) VALUES (1, "string")
请注意,OP 在单引号中没有字符串值以上是关于php如何将逗号分隔的多个json格式的字符串作为一个值插入到mysql表中? [复制]的主要内容,如果未能解决你的问题,请参考以下文章
如何在数字字段的条件下将逗号分隔的数字字符串传递给存储过程?