当我使用php mysql更新数据时,遇到了一些问题,我的代码php代码就在这里
$query = "UPDATE `wp_experience` SET
`exp_from` ='". $exp_from."' ,
`exp_to` = '". $exp_to."' ,
`exp_title` = '". json_encode($exp_title)."',
`exp_desc` = '". json_encode($exp_desc)."' ,
`exp_cat` = '". $exp_cat."'
WHERE `id` =".$oldid;
它会生成像
这样的数据UPDATE
wp_experience
SETexp_from
='2016-01-22 00:00:00',exp_to
='2002-11-14 00:00:00',{{ 1}} ='{“en”:“PSA标致雪铁龙汽车公司,米卢斯(F-68)”,“fr”:“技术指导 - 法国”,“de”:“负责任的维护单位”},exp_title
='{“en”:“ 试验< / P> “中, ”FR“:” 试验< / P> “中, ”去“:” H< / p>“}',exp_desc
='18'WHEREexp_cat
= 28
我遇到了这个问题,
1064 - 您的SQL语法出错;检查与您的MySQL服务器版本对应的手册,以便在'unitédemaintenance“}'附近使用正确的语法,
id
='{”en“:” 试验< / P> “中, ”FR“:” 在第1行测试< / p'
如何解决这个问题??
答案 0 :(得分:1)
您的某些嵌入字符串会破坏您的查询,因此请使用mysqli_real_escape_string()
或准备好的SQL语句:
$query = "
UPDATE
wp_experience
SET
exp_from = '" . $exp_from . "' ,
exp_to = '" . $exp_to . "' ,
exp_title = '" . mysqli_real_escape_string($con, json_encode($exp_title)) . "',
exp_desc = '" . mysqli_real_escape_string($con, json_encode($exp_desc)) . "' ,
exp_cat = '" . mysqli_real_escape_string($con, $exp_cat) . "'
WHERE
id = " . $oldid;