我有這樣的代碼:搜索查詢將返回一個空的結果集
PHP:
[CONNECT TO DATABASE OR DIE (THIS WORKS)]
if(isset($_GET['search'])) // If it's submitted
{
$inp = Clean($_GET['inpname']); // Clean my input
$sQuery="SELECT name FROM user WHERE (id LIKE '%$inp%')"; // mySql query
$r = mysql_query($sQuery) or die(mysql_error());
if(mysql_affected_rows()===0) // If no match found
echo "{$inp} is not in our database.";
else
{
echo "<p>{$inp} was successfully searched.</p>"; // Yes, the query worked
while($row=mysql_fetch_array($r)) // Loop through the query results
echo "{$row[0]}<br>"; // Show the results
} // End of the else statement
} // End of the if statement
function Clean($str) // Clean my input
{
return mysql_real_escape_string(strip_tags(trim($sStr))); // Remove traces of injection
}
HTML:
<form name="form" action="<?php echo $_SERVER['PHP_SELF']; ?>" method="get">
<input name="inpname" type="text">
<input type="submit" name="search" value="Search">
</form>
在我的數據庫我想搜索的成員由ID,但是當我搜索例如1我沒有結果:不在我們的數據庫中。 (/index.php?inpname=1 &搜索=搜索)
如果我使用'%'。$ inp。「%'而不是'%$ inp%',這是行得通的,但它顯示我的數據庫中的所有用戶。
什麼是從'預期$ _GET ['inpname']'一個int或一個字符串,例如一個名字,你的腳本也容易受到xss和PDO的攻擊,或者mysqli應該被用於mysql_ * fun ctions。 – 2012-07-19 07:18:40
任何建議使用什麼? – 2012-07-19 07:24:01
你的乾淨的函數有一個錯誤'修剪($ sStr)' - ** $ sStr **當它應該只是'$ str' – 2012-07-19 07:27:50