我有这段代码:
$var = mysqli_real_escape_string($connection,$_POST['var']);
$sql = "UPDATE users SET var = '$var' WHERE id = '$id'";
如果var是aaa
,即使var是aa'bbb
也没关系,但如果var是sss"ddd
- 更新的var只是sss
。
我知道这是因为mysql查询包含"
。
有什么想法吗?
答案 0 :(得分:0)
在开始使用PHP之前,您必须首先学习HTML基础知识 此外,你必须了解两者之间的区别。
所以,不要因为你的HTML不完整而责怪PHP
打开页面源代码并查看您的sss"ddd
声音和安全,但是这样会破坏HTML
<input value="sss"ddd">
从现在开始,通过htmlspecialchars()
答案 1 :(得分:0)
您可以尝试像这样编写查询
$var = mysqli_real_escape_string($connection,$_POST['var']);
$sql = 'UPDATE users SET var = "'.$var.'" WHERE id = "'.$id.'"';
答案 2 :(得分:-1)
您可以按照以下方式尝试 -
SET @qry=CONCAT('UPDATE users SET var = "',REPLACE(@var,'"','\''),'" WHERE id = \'457\'');
PREPARE stmt FROM @qry;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;