Php addslashes()插入数据库时不使用斜杠

Php addslashes()插入数据库时不使用斜杠,php,mysql,Php,Mysql,由于某些原因,addslashes在将数据插入数据库时并没有添加斜杠。我以为我用对了,但显然不是。。。当我提交包含单引号或双引号的数据时,它只是将准确的字符串直接发送进来。你有什么想法可以让它工作吗 代码 addslashes()用于转义字符串。如果你有密码: $lastname = "O'Bama"; $query = "SELECT name FROM users WHERE lastname='$lastname'"; 查询将产生错误,因为Bama将被视为SQL语句。要防止出现这种情

由于某些原因,addslashes在将数据插入数据库时并没有添加斜杠。我以为我用对了,但显然不是。。。当我提交包含单引号或双引号的数据时,它只是将准确的字符串直接发送进来。你有什么想法可以让它工作吗

代码

addslashes()
用于转义字符串。如果你有密码:

$lastname = "O'Bama";

$query = "SELECT name FROM users WHERE lastname='$lastname'";
查询将产生错误,因为
Bama
将被视为SQL语句。要防止出现这种情况,可以使用
addslashes()
so

echo addslashes($lastname); // returns O\'Bama
现在,您可以执行查询而不出现任何错误,因为您的数据库将看到值为“O'Bama”。

addslashes()
用于转义字符串。如果你有密码:

$lastname = "O'Bama";

$query = "SELECT name FROM users WHERE lastname='$lastname'";
查询将产生错误,因为
Bama
将被视为SQL语句。要防止出现这种情况,可以使用
addslashes()
so

echo addslashes($lastname); // returns O\'Bama
现在,您可以执行查询而不出现任何错误,因为您的数据库将看到值为“O'Bama”。

addslashes()
用于转义字符串。如果你有密码:

$lastname = "O'Bama";

$query = "SELECT name FROM users WHERE lastname='$lastname'";
查询将产生错误,因为
Bama
将被视为SQL语句。要防止出现这种情况,可以使用
addslashes()
so

echo addslashes($lastname); // returns O\'Bama
现在,您可以执行查询而不出现任何错误,因为您的数据库将看到值为“O'Bama”。

addslashes()
用于转义字符串。如果你有密码:

$lastname = "O'Bama";

$query = "SELECT name FROM users WHERE lastname='$lastname'";
查询将产生错误,因为
Bama
将被视为SQL语句。要防止出现这种情况,可以使用
addslashes()
so

echo addslashes($lastname); // returns O\'Bama


现在您可以执行查询而不出现任何错误,因为您的数据库将看到值为“O'Bama”。

在处理数据库时使用
addslashes()
是非常糟糕的做法。因为您使用的是PHP的mysqli扩展,所以应该使用
mysqli\u real\u escape\u string()
对数据进行转义。
addslashes()
的PHP手册页面解释了原因。

在处理数据库时使用
addslashes()
是非常糟糕的做法。因为您使用的是PHP的mysqli扩展,所以应该使用
mysqli\u real\u escape\u string()
对数据进行转义。
addslashes()
的PHP手册页面解释了原因。

在处理数据库时使用
addslashes()
是非常糟糕的做法。因为您使用的是PHP的mysqli扩展,所以应该使用
mysqli\u real\u escape\u string()
对数据进行转义。
addslashes()
的PHP手册页面解释了原因。

在处理数据库时使用
addslashes()
是非常糟糕的做法。因为您使用的是PHP的mysqli扩展,所以应该使用
mysqli\u real\u escape\u string()
对数据进行转义。
addslashes()
的PHP手册页面解释了原因。

那么你是说
addslashes()
可能正在做它的工作,但是它仍然会将它插入带有引号的数据库?还是我完全误解了你的意思?它会插入引号,因为你正在转义它们,它们不是SQL查询的一部分,而是你的值的一部分。好吧,这应该有助于防止SQL注入正确吗?很抱歉,我还是一个PHP/MySQL的初学者。请更正,我不想对数据库做任何事情。在这种情况下,正确的函数是。@Aldentec不,这还不足以阻止SQL注入。为了获得适当的安全性,您应该在参数化查询中使用PDO:或MySQLi:那么您是说
addslashes()
可能正在执行它的任务,但是它仍然会将它插入到带有引号的数据库中?还是我完全误解了你的意思?它会插入引号,因为你正在转义它们,它们不是SQL查询的一部分,而是你的值的一部分。好吧,这应该有助于防止SQL注入正确吗?很抱歉,我还是一个PHP/MySQL的初学者。请更正,我不想对数据库做任何事情。在这种情况下,正确的函数是。@Aldentec不,这还不足以阻止SQL注入。为了获得适当的安全性,您应该在参数化查询中使用PDO:或MySQLi:那么您是说
addslashes()
可能正在执行它的任务,但是它仍然会将它插入到带有引号的数据库中?还是我完全误解了你的意思?它会插入引号,因为你正在转义它们,它们不是SQL查询的一部分,而是你的值的一部分。好吧,这应该有助于防止SQL注入正确吗?很抱歉,我还是一个PHP/MySQL的初学者。请更正,我不想对数据库做任何事情。在这种情况下,正确的函数是。@Aldentec不,这还不足以阻止SQL注入。为了获得适当的安全性,您应该在参数化查询中使用PDO:或MySQLi:那么您是说
addslashes()
可能正在执行它的任务,但是它仍然会将它插入到带有引号的数据库中?还是我完全误解了你的意思?它会插入引号,因为你正在转义它们,它们不是SQL查询的一部分,而是你的值的一部分。好吧,这应该有助于防止SQL注入正确吗?很抱歉,我还是一个PHP/MySQL的初学者。请更正,我不想对数据库做任何事情。在这种情况下,正确的函数是。@Aldentec不,这还不足以阻止SQL注入。为了获得适当的安全性,您应该将PDO与参数化查询一起使用:或MySQLi:不是正确的函数,在进入数据库时转义数据,正如手册页面明确指出的那样。在这种情况下,正确的功能是。addslashes对于防止sql注入攻击的作用与湿厕纸的作用一样。试着忘记这个函数甚至是存在的,永远不要把它用于任何事情。不是正确的函数,用于在进入数据库时转义数据,正如其手册页面明确指出的那样。在这种情况下,正确的函数是。addslashes对于防范sql注入攻击的作用与湿式马桶差不多