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