【发布时间】:2014-01-16 13:09:30
【问题描述】:
我正在使用 PHP 连接使用 sqlsrv 驱动程序的 SQL 数据库。但是,我遇到了一个问题:
$string = "Home";
$DBH->prepare( "INSERT INTO table_name (column_name) VALUES ('" .$string. "')" );
$DBH->execute();
这是怎么回事?
$string = "Home's";
$DBH->prepare( "INSERT INTO table_name (column_name) VALUES ('" .$string. "')" );
$DBH->execute();
但这不是吗?
SQL 数据库似乎不接受 $string 变量中的撇号。过去我会使用mysql_real_escape_string,但这不是一个选项。
【问题讨论】:
-
有效和无效是这里没人理解的词。找出错误。 PDO有一个引用方法php.net/manual/en/pdo.quote.php
-
你正在遭受 SQL 注入 - 这是how to fix it
-
“过去我会使用
mysql_real_escape_string,但这不是一个选择。”这意味着您知道问题所在。使用准备好的语句。 -
@ÁlvaroG.Vicario — 不仅如此,这就是问题的原因,因此您链接到的问题是重复的。
标签: php sql sql-server pdo