将mysql_real_escape_string函数转换为mysqli

时间:2016-12-01 01:46:14

标签: 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?它需要两个变量,而且只有一个。

感谢。

1 个答案:

答案 0 :(得分:0)

怎么样?
 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);