php - 由于撇号,mysql 查询未更新

标签 php mysql sql oracle

$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'"

我找到了一些文章,但没有说如何找到撇号并更改变量值

最佳答案

使用 mysql_escape_string()

$sql="UPDATE `client` SET pname='".mysql_escape_string($pname)."' WHERE url='$url'";

学习 mysqliPDO 因为 mysql 已经贬值并且很快就会被淘汰

关于php - 由于撇号,mysql 查询未更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26727462/

相关文章:

php - mybb - 如何检查新的私有(private)消息

php - SQL倒数计时器

javascript - 如何使用从数据库或变量查询的模板文字?

sql - Postgresql 用随机值更新每一行

sql - EXEC dbo.sp_executesql @语句

sql - 如何进行多分组并输出到 CSV

php - 消息传递如何使用 php 和 mysqli 在 html 页面中工作?

php - 提交后更改表单字段的数据

mysql - 将属性名称与 MySQL 中的表名称连接起来

mysql - SQL 数据库 ID 更改