$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在某处错了。
但它没有呈现相同的结果...... 谢谢。
答案 0 :(得分:1)
PDO::quote
相当于mysql_real_escape_string
。如果出于某种原因你不能使用预备语句,你可以像这样使用它:
$q = "INSERT INTO articles VALUES (" . $idc->quote($_GET["article"]) . ")";
一个显着的区别是它包含字符串周围的引号,而mysql_real_escape_string
则没有(所以你必须在INSERT
字符串中加上引号)。
答案 1 :(得分:0)