我对 MySql 和 PHP 中的反斜杠有疑问!我写了一个简单的代码来测试!
include "src/db.inc.php";
$name="licon's";
$name=addslashes($name);
$sql="insert into test values('$name')";
mysql_query($sql);
$sql1="select * from test";
$rs=mysql_query($sql1);
$row=mysql_fetch_assoc($rs);
echo $row['name'];
如代码所示,我想将带有单引号的字符串插入表中。
1.我需要对字符串进行转义,这里我使用函数addslashes()
。所以$name
会是这样的“ licon\'s
”。
2.但是当我插入$name
表格并在mysql控制台中选择它时,该函数添加的反斜杠addslashes
消失了。如下:
mysql> select * from test;
+---------+
| name |
+---------+
| licon's |
+---------+
3.当我在PHP脚本中选择字段' name
'并打印它时,反斜杠也消失了。
如下:
$sql1="select * from test";
$rs=mysql_query($sql1);
$row=mysql_fetch_assoc($rs);
echo $row['name'];
======
print: licon's
所以我想知道函数addslashes()
在变量中添加反斜杠$name
。为什么反斜杠消失了?