我正在尝试对我的数据库应用程序(针对一个类)进行一些安全性和清理工作。首先,我尝试使用 mysql_real_escape_string,但每当我使用它时,它总是返回一个空字符串!
这是连接代码:
include_once ("./connect.php");
$db_connection = new mysqli($SERVER, $USERNAME, $PASSWORD, $DATABASE);
if (mysqli_connect_errno()) {
echo("Can't connect to MySQL Server. Error code: " . mysqli_connect_error());
return null;
}
$field = mysql_real_escape_string($_GET['value']);
$upc = $_GET['upc'];
$type = $_GET['field_type'];
echo $field;
echo $upc;
echo $type;
当 php 实际执行时,会打印 $upc 和 $type,但 $field 没有任何内容。我试过使用中间字符串,但我得到了相同的结果。我真的不知道这里出了什么问题。
另外,我在 $field
上做了一个 var_dump,它声称 mysql_real_escape_string
返回 FALSE
,这应该发生在不是连接(?),但有一个。
最佳答案
您使用的是mysqli,而不是mysql,所以您需要mysqli_real_escape_string
虽然你可以很容易地在 mysqli 中使用准备好的语句,然后你也不需要...
关于PHP mysql_real_escape_string 返回空字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10339373/