php - 引号和 mysql 插入的问题

标签 php mysql http-post mysql-error-1064

我在将表单 $_POST 变量插入 MySQL 时遇到问题! 我知道这是一个单引号问题,但根本无法解决。

代码是:

$naziv_db = $_POST["naziv"];
$naziv_db = mysql_real_escape_string($naziv_db);

$query = "INSERT INTO items (title) VALUES ('$naziv_db')";

$stmt = mysql_query($query) or die("MySQL error: " . mysql_error());

如果我输入一个包含 " 的值,它会正确插入,但如果它包含 ',则会出现错误!

例如,如果我的输入是 Milky 的

error is: MySQL error: You have an error in your SQL syntax; 
check the manual that corresponds to your MySQL server version 
for the right syntax to use near 's

如果我的输入是 "Milkys" 一切顺利...


我是新来的,所以不能发布我自己问题的答案,所以我必须编辑!

Christian 的解决方案是正确的!

我修改了代码:

$query = "INSERT INTO items (title) VALUES ('$naziv_db')";

到:

$query = 'INSERT INTO `items` (`title`) VALUES ("'.$naziv_db.'")';

现在它可以毫无错误地接受 "和 '!

谢谢你们,你们是最棒的:D

最佳答案

要完全避免这种情况,您最好使用准备好的语句。

this question 的答案中有一个很好的例子.

针对您的情况进行转换后,您将获得:

$db = new mysqli("host","user","pw","database");
$stmt = $db->prepare("INSERT INTO items (title) VALUES (?)");
$stmt->bind_param('s', $_POST["naziv"]);
$stmt->execute();
$stmt->close();

关于php - 引号和 mysql 插入的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5665067/

相关文章:

用二进制 : binary content got truncated when hit 0x00 连接字符串

mysql - Tryton ERP MySQL安装

php - 可观察的更新值

ios - 在 Swift 中使用其他参数上传多个图像

php - 如何使用 jquery 将 id 值传递给 PHP?

php - 循环遍历 mysql 连接

java - 尝试 HTTP POST 但收到 MalformedURLException : no protocol: yahoo. com

javascript - 如何使用 jQuery DataTables 从所有页面提交复选框

javascript - 更新 jquery 后文件上传不起作用

php - 使用签名验证设置 Webhook Receiver - 计算的哈希值有时会差一个字符