我将使用表单通过url get将关键字发送到页面本身,以便在sql语句中应用以进行关键字搜索: -
if (isset($_GET['k']))
{
$keyword = $_GET['k'];
$keyword = urldecode($keyword);
}
<form action = "home.php" method="get">
<input type = "text" name="k" value = "" size = "40"/>
<input type = "submit" value = "search">
</form>
$sql = "select * from [phone] where ([name] like '%$keyword%') order by id DESC";
对于英文内容,我可以完美地从URL获取关键字;但对于中文字符,虽然我已经将urldecode应用于$ _GET值,但我仍无法恢复中文字。有没有更好的方法来解决这个问题?谢谢!
答案 0 :(得分:0)
通常,在修改GET值时,您不必使用urldecode。
除此之外,您还有一个令人讨厌的SQL注入问题:
$sql = "select * from [phone] where ([name] like '%$keyword%') order by id DESC";
更改为(如果是mysql):
$sql = sprintf("select * from [phone] where ([name] like '%%%s%%') order by id DESC", mysql_real_escape_string($keyword));
更好地使用预备语句,或类似Zend_DB_Select。