我有 php 函数的问题:mysql_real_escape_string
我的测试字符串:
@,&!#$%^*()_+' "\/
我将这些数据添加到 mySql 数据库中,就像这样(简而言之):
$str = mysql_real_escape_string($str);
$sql = "INSERT INTO table(company) VALUES('".$str."')";
在 DB 中存储为:
@,&!#$%^*()_+\' \"\\/
但问题是通过 SELECT 语句查找此数据。
我想找到,名字像的公司
'"
我的选择:
SELECT; 不工作。companyFROMtableWHEREcompanyLIKE '%\' "%'; 选择company从table哪里company喜欢 '%\\' \\"%';
这有效:
SELECT `company` FROM `table` WHERE `company` LIKE '%\\\' \\\\"%';
和
SELECT `company` FROM `table` WHERE `company` LIKE '%\\\\\\\\' \\\\\\\"%'
但我不知道为什么这样做:(。
我的问题是:
为什么一定要加这么多斜线?
如何在 PHP 中进行正确查询:
$查询 = '\' "';
'%'.mysql_real_escape_string($query).'%'
结果是:'%\'\"%'
'%'.mysql_real_escape_string(mysql_real_escape_string($query)).'%'
结果是:'%\\\' \\\"%'
'%'.mysql_real_escape_string(mysql_real_escape_string(mysql_real_escape_string($query))).'%'
结果是:'%\\\\\\\' \\\\\\\"%'
只有最后一个效果很好。