我有 php 函数的问题:mysql_real_escape_string
我的测试字符串:
@,&!#$%^*()_+' "\/
我将这些数据添加到 mySql 数据库中,就像这样(简而言之):
$str = mysql_real_escape_string($str); $sql = "INSERT INTO table(company) VALUES('".$str."')";
在 DB 中存储为:
@,&!#$%^*()_+\' \"\\/
但问题是通过 SELECT 语句查找此数据。
我想找到,名字像的公司
'"
我的选择:
SELECT; 不工作。company
FROMtable
WHEREcompany
LIKE '%\' "%'; 选择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))).'%' 结果是:'%\\\\\\\' \\\\\\\"%'
只有最后一个效果很好。