【发布时间】:2010-09-25 13:33:50
【问题描述】:
如果我输入
'
在我的搜索栏中我收到一个 mysql 错误,因为“刺痛”没有被转义——它认为。
但我无法逃脱它的原因是因为我认为它目前不是一个字符串。
搜索框在我输入时使用 ajax 动态生成搜索结果,它会找到我收到错误的结果:
You have an error in your SQL syntax; check the manual that corresponds to
your MySQL server version for the right syntax to use near '%' OR Location
LIKE '%'%' OR Map LIKE '%'%' LIMIT 0, 16' at line 2
这是mysql查询:
<?php
if($_POST['q']!=""){
include $_SERVER['DOCUMENT_ROOT'] . "/include/datebasecon.php";
$result = mysql_query("
SELECT id, Name, Location, Map
FROM Accommodation WHERE Name LIKE '%".$_POST['q']."%' OR Location LIKE '%".$_POST['q']."%' OR Map LIKE '%".$_POST['q']."%' LIMIT 0, 16")
or die(mysql_error());
$output = "";
while($row = mysql_fetch_array($result)){
$N = preg_replace("/(".$_POST['q'].")/i","<span>$1</span>",$row['Name']);
$L = preg_replace("/(".$_POST['q'].")/i","<span>$1</span>",$row['Location']);
$M = preg_replace("/(".$_POST['q'].")/i","<span>$1</span>",$row['Map']);
$output .= "<p>".$N." - ".$L."</p>";
}
print $output;
}
?>
有没有我可以在它发布查询后解决这个问题?
【问题讨论】:
-
I don't think it currently is a string.它是什么?
标签: mysql string escaping mysql-real-escape-string