【发布时间】:2017-09-14 16:31:46
【问题描述】:
我使用这行代码:
list($variable1, $variable2) = explode("|", $_POST['something']);
然后,当我将两个变量都放入 mysqli_real_escape_string 中时:
$variable1 = mysqli_real_escape_string($connection, $variable1);
$variable2 = mysqli_real_escape_string($connection, $variable2);
它不起作用。我知道这是因为双引号不会插入到 mysql 数据库中。我哪里错了?
【问题讨论】:
-
了解prepared 的MySQLi 语句。即使escaping the string 也不安全!
-
你为什么用
@variable而不是$variable? -
你不应该再使用
mysqli_real_escape_string,它不安全。您应该使用准备好的语句:php.net/manual/en/mysqli.quickstart.prepared-statements.php -
它不起作用。所以它会冒烟,着火,什么?
-
准备语句实际上比使用 mysqli_real_escape_string 容易得多。您永远不必担心再次引用变量,这消除了很多语法错误。