gpt4 book ai didi

php - mysqli_escape_string 我如何实现它?

转载 作者:行者123 更新时间:2023-12-01 00:52:49 26 4
gpt4 key购买 nike

您好,我有一个关于写入数据库的问题:

我是 mysql_escape_string 的新手,因为一位 friend 告诉我。因为我使用 mysql_escape_string 它不再写入我的数据库。

代码如下:

////////////////////////////////////////////////////////////////
$iets = $_POST['aantal'] + $_POST['begin'];

for ($i = $_POST['begin'] ; $i < $iets ; $i++){
$rows = $rows.'a'.$i.', ';
}

$rows = mysql_escape_string(trim($rows, ', '));
/////////////////////////////////////////////////////////////////////
$iets = $_POST['aantal'] + $_POST['begin'];

for ($i = $_POST['begin'] ; $i < $iets ; $i++){
$r = 'a'.$i;
$values = $values.'\''.$_POST[$r].'\', ';
}

$values = mysql_escape_string(trim($values, ', '));


$naam = mysql_escape_string($_POST['naam']);

mysql_query("INSERT INTO $naam
(
$rows
)
VALUES
(
$values
)");
mysql_close($con);


printf("%s<br />%s", $values, $rows);

当我有:

aantal = 3
begin = 4

printf 的输出,a4=abcdefa5=ghijkla6=mnopq 是:

\'abcdef\', \'ghijkl\', \'mnopq\'<br />
a1, a2, a3

我不明白,强烈反对应该不会产生影响吧?

最佳答案

转义的目的是阻止具有特殊含义的字符(例如 ')具有该特殊含义。由于您正在转义包含所有引用值的 SQL 片段,因此您正在转义引号并阻止它们引用这些值。

您需要在引用之前对每个 值进行转义。

$values = $values.'\''.$_POST[$r].'\', ';
//^^^^^^^^^^ Escape this

但是:

不要使用 mysql_escape_string 它已被替换为 mysql_real_escape_string,但不要使用它,不要使用 mysql_* 全部,it is deprecated .

选择 modern replacement并使用 prepared statements and bound arguments而不是转义字符串并通过字符串连接将它们拼凑成 SQL。

关于php - mysqli_escape_string 我如何实现它?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13879976/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com