php - 将 mysql_real_escape_string 函数转换为 mysqli

标签 php mysql mysqli

我在一个更大的 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);

其中 $conmysqli_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/

相关文章:

php - 如何在单个API调用中从多个Youtube channel 获取最新视频

php - 如何知道mysql表中生成的唯一键的名称?

python - 使用select和values在mysql中一次在表中插入三列

php - mysqli_fetch_assoc()需要参数/调用成员函数bind_param()错误。如何获取并修复实际的mysql错误?

php - 通知: Undefined index:life in line 117

javascript - 如何通过AJAX检索使用POST方法创建的表?

php - 如何在使用 PHP 单击时自动填充其他表单字段

php - count mysql联合类型查询

php - 我是否需要打开 MySQL 端 Eloquent 能使 DigitalOcean LAMP 应用程序正常工作?

php - 没有递归的PHP中的树算法