我剛剛在PHP中創建了一個非常簡單的搜索功能,但我遇到了一些問題。搜索功能將查詢發送到數據庫並打印結果,但它不打印我想要的結果。它應該打印那些類似於用戶輸入的記錄,但它只是打印每個記錄。PHP搜索功能打印所有記錄,而不是那些搜索的
我的格式如下:
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
<input type="text" name="name">
<input type="submit" name="submit" value="Search">
</form>
而且PHP代碼,使搜索是:
if(isset($_POST['submit']))
{
require ('mysqli_connect.php');
include ('config.php');
$term = $_POST['term'];
$q = "SELECT name, producer, jamtypes, user FROM Jam WHERE name LIKE '%" . $term . "%'";
$sql = @mysqli_query ($dbc, $q);
while ($row = mysqli_fetch_array($sql)){
echo "<br />";
echo 'Name: '.$row['name'];
echo '<br/> Producer: '.$row['producer'];
echo '<br/> Created By: '.$row['user'];
echo '<br/> Category: '.$row['jamtypes'];
echo '<br/>';
}
}
謝謝你們
你對sql注入很開放 –
'echo $ q;'你想要什麼?在你的表單中沒有「term」,也許你想要「name」 – 2013-01-06 22:13:17
John是正確的世界,你應該清理你的數據庫輸入。 Mysqli提供了準備好的語句來幫助這[http://php.net/manual/en/mysqli.quickstart.prepared-statements.php]http://php.net/manual/en/mysqli.quickstart.prepared-statements。 php – djthoms