[英]Correct use of mysqli_real_escape_string for insert,select and update statement - PHP/Oracle
[英]PHP and MySQL - correct way to use mysqli_real_escape_string
我想知道下面的代码是否是在数据库中存储用户数据时使用mysqli_real_escape_string()
的正确方法。
这是PHP和MySQL代码。
if (mysqli_num_rows($dbc) == 0) {
$mysqli = mysqli_connect("localhost", "root", "", "sitename");
$dbc = mysqli_query($mysqli,"INSERT INTO info (user_id, url)
VALUES ('$user_id', 'mysqli_real_escape_string($url)')");
}
if ($dbc == TRUE) {
$dbc = mysqli_query($mysqli,"UPDATE info
SET url = 'mysqli_real_escape_string($url)'
WHERE user_id = '$user_id'");
不, mysqli_real_escape_string()
不在字符串内执行。 您需要将其移到PHP代码中:
$eUrl = mysqli_real_escape_string($url);
mysqli_query($mysqli, "INSERT ... VALUES ('$eUrl')");
但是我(而且,我敢肯定,这里的其他人)会认为PDO和变量绑定是逃避现代世界事物的“正确”方法。
差不多:您需要将函数调用放在字符串之外:
"... VALUES ('$user_id', '".mysqli_real_escape_string($url)."')");
请注意在函数调用之前和之后的结尾处的"
和串联.
"
。
而且,我们不知道$user_id
来自何处。 如果来自外部,那也需要避免。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.