-1
 $q = "INSERT INTO articles VALUES( mysql_real_escape_string($_GET["article"]) )
 $req = $bdd->prepare($q); 
 $req ->execute();

我一直在另一个 mysql_real_escape_string() 还没有过时的服务器上工作,现在我正在将站点移动到另一个显然不再接受此功能的 mysql 服务器。而且,很明显我需要使用一些 PDO

那么 mysql_real_escape_string() 的 PDO 等价物是什么?我正在尝试这样的事情

 $idc = new PDO(...);
 $q = "INSERT INTO articles VALUES( $idc->quote(($_GET["article"])));
 $req = $bdd->prepare($q); 
 $req ->execute();

我确实使用了准备好的语句,但我怀疑我的 PDO::quote 在某处是错误的。

但它不会呈现相同的结果......谢谢。

4

2 回答 2

1

PDO::quote相当于mysql_real_escape_string。如果由于某种原因您不能使用准备好的语句,您可以像这样使用它:

$q = "INSERT INTO articles VALUES (" . $idc->quote($_GET["article"]) . ")";

一个显着的区别是它包括字符串周围的引号,而mysql_real_escape_string没有(所以你必须在你的INSERT字符串中加上引号)。

于 2013-04-25T01:11:48.067 回答
0

使用准备好的语句(首选)或PDO::quote()

于 2013-04-25T01:11:00.890 回答