【发布时间】:2018-10-04 07:56:19
【问题描述】:
尝试同时使用 " 和 ' 进行插入查询
我有$description = addslashes($description);
但我仍然得到:
SQLSTATE[42000]:语法错误或访问冲突:1064 你有一个 SQL 语法错误;检查与您对应的手册 MySQL 服务器版本,用于在 '27"","Product 附近使用正确的语法
$description 在addslashes() 之后是"Capacity:26\",27\" and 700C Wheel Sizes"。
查询:
$handler->query('INSERT INTO `tm_products`
(`title`, `description`, `member_name`, `category_path`)
VALUES ("'.$apiGetListing['Title'].'",
"'.$description.'","'.$member_name.'",
"'.$apiGetListing['CategoryPath'].'")');
我认为它试图在26\" "?
【问题讨论】:
-
请查看准备好的语句 - 有很多关于如何使用它们的教程/问题,stackoverflow.com/questions/1290975/… 等。
-
您究竟为什么使用
addslashes来引用您的数据?这不是推荐的方式 - 文档清楚地告诉您不要使用它来引用数据库输入 -
现在你的代码很容易受到 SQL 注入的攻击。请使用准备好的查询;更多信息:php.net/manual/en/pdo.prepared-statements.php