我在一个更大的 php 脚本中有以下代码:
$FullSQL = $inSQL;
foreach($ROW as $item) {
$ItemName = (string)$item->getName();
$fieldValue = $ROW->$ItemName;
$FullSQL = $FullSQL . "'" . mysql_real_escape_string($fieldValue) . "', ";
}
$inSQL_len = strlen($FullSQL) -2;
$FullSQL=substr($FullSQL, 0, $inSQL_len ) . ")";
echo "INSERTED FullSQL=" . $FullSQL . "<br><br>";
if (!mysqli_query($con,$FullSQL)) { die('Error insering tmporder: ' . $FullSQL . " ERROR:" . mysqli_error()); }
else {
echo "INSERTED inSQL=" . $FullSQL . "<br><br>";
}
}
}
我已经成功地将整个脚本转换为 mysqli,除了上面的部分。正如预期的那样,mysql_real_escape_string($fieldValue)
部分正在生成 mysql 折旧错误。
如何将这段代码转换为使用 mysqli?它需要两个变量,但只有一个。
谢谢。
最佳答案
怎么样
mysqli_real_escape_string ($con, $fieldValue);
其中 $con
是 mysqli_connect() 返回的链接标识符或mysqli_init() .
如果我们比较 mysqli_real_escape_string() 的语法和 mysql_real_escape_string()我们有
mysqli_real_escape_string ($link, $string);
mysql_real_escape_string ($string[, $link=NULL]);
旧函数也有相同的参数,但顺序不同,并且 $link
在已弃用的版本中是可选的。
如果您决定使用对象样式而不是程序样式,请像这样使用
$con = new mysqli ("host", "user", "pwd", "db");
...
$safe_string = $con->real_escape_string ($string);
关于php - 将 mysql_real_escape_string 函数转换为 mysqli,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40901302/