$url = "example.com";
$data = json_decode($raw);
$pname=$data->name;
$sql="UPDATE `client` SET pname='$pname' WHERE url='$url'";
$query=mysql_query($sql,$link)or die(mysql_error());
解码json数据时,变量$ pname中的值进入客户端表。如果名称中有撇号(')则会引发错误。我可以在变量中进行哪些更改以将名称发送到数据库表?
例如: 杰里得到更新,没有任何问题 D' Cunha没有得到更新,因为它有撇号。查询变为
"UPDATE `client` SET pname='D'Cunha' WHERE url='example.com'"
我发现了一些文章,但没有说明如何找到撇号和更改变量值
答案 0 :(得分:2)
使用mysql_escape_string()
$sql="UPDATE `client` SET pname='".mysql_escape_string($pname)."' WHERE url='$url'";
并了解mysqli
或PDO
,因为mysql
已被弃用,儿子将会放弃
答案 1 :(得分:2)
使用准备好的陈述。 Mysqli或PDO。这是mysqli的一个例子:
$url = "example.com";
$data = json_decode($raw);
$pname=$data->name;
$mysqli = new mysqli($host, $user, $password, $db);
$stmt = $mysqli->prepare("UPDATE client SET pname = ? WHERE url = ?");
$stmt->bind_param("ss", $pname, $url);
$stmt->execute();
答案 2 :(得分:1)
试试这个:
UPDATE client SET pname = 'D\'Cunha' WHERE url = 'example.com'