我在一个更大的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?它需要两个变量,而且只有一个。
感谢。
答案 0 :(得分:0)
怎么样?
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);