繁体   English   中英

PHP和MySQL-使用mysqli_real_escape_string的正确方法

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM