我有以下php版本:
PHP Version 5.3.2-1ubuntu4.19
和这个php字符串:
$l_sDesc = "It doesn' t contain any dangerous substances";
如果我尝试使用db_query(Drupal)进行查询,则由于撇号而出现错误;
db_query("UPDATE mytable SET description= '$l_sDesc' where id = $id");
我尝试使用mysql_real_escape_string(),但我得到一个空字符串:
$l_sDesc = mysql_real_escape_string($l_sDesc); //i have an empty string as result
有什么问题?
答案 0 :(得分:0)
Drupal使用另一个DB Wrapper。通常,您可以创建预准备语句。
https://api.drupal.org/api/drupal/includes!database!database.inc/group/database/7
这是一个正确的例子。如果您使用正确的预准备语句,您的输入将被过滤。
否则请使用stripslashes()
。
答案 1 :(得分:0)
在实际使用它们之前,请尝试在字符串上使用PHP函数mysql_real_escape_string。
http://php.net/manual/en/function.mysql-real-escape-string.php
答案 2 :(得分:0)
我建议使用$l_sDesc = htmlspecialchars($l_sDesc);