我有一个名为table
的{{1}},其中包含的条目如下所示。
tags
现在我想使用查询搜索 ID
Name
Created Date
但无法搜索记录。
10
limit\'s
2013-06-27 05:18:35
对于我的尝试。
limit's
'SELECT id FROM tags AS Tag WHERE name = "%'. urlencode($adTag) .'%" LIMIT 0,1'
'SELECT id FROM tags AS Tag WHERE name LIKE "%'. htmlspecialchars($adTag) .'%" LIMIT 0,1'
'SELECT * FROM tags AS Tag WHERE name LIKE "%'. $adTag .'%" OR REPLACE(name,'''','') LIKE "%'. $adTag .'%"'
'SELECT id FROM tags AS Tag WHERE name LIKE "%'. mysql_real_escape_string( stripslashes($adTag)) .'%" LIMIT 0,1'
'SELECT id FROM tags AS Tag WHERE name LIKE "%'. mysql_real_escape_string($adTag) .'%" LIMIT 0,1'
动态出现的地方,其值为$adTag
。以上是尝试但没有一个工作。
让我知道我做错了什么,所以我可以纠正mysql。
感谢。
答案 0 :(得分:1)
如果您要搜索limit's
,则表格中必须有limit's
所以,首先要摆脱表条目中的错误反斜杠。
剩下的就像往常一样
$tag = $db->getOne('SELECT id FROM tags WHERE name = ?s', $adTag);
答案 1 :(得分:1)
经过如此多的谷歌工作后,我终于开始工作了。
以下是我的解决方案。
SELECT *
FROM tags
WHERE `name` = 'limit\\''s'
LIMIT 0 , 30
它的功效就像魅力一样。希望这将有助于其他极客。
答案 2 :(得分:0)
我尝试重新创建数据库并进行搜索,结果中需要2个addslashes才能显示。我认为MySQL会自动逃避第一个斜杠。
addslashes(addslashes($adTag));
答案 3 :(得分:0)
试试这个..
$sql = "SELECT id FROM tags AS Tag WHERE name LIKE %". mysql_real_escape_string( stripslashes(urldecode($adTag))) ."% LIMIT 0,1