我一直在用這個問題絞盡腦汁,在每次搜索Google和Stack Overflow一百次之後,我決定直接詢問它。MySQL選擇...哪裏子句返回語法錯誤
我試圖做一個頁面,使用PHP和MySQL來搜索數據庫,因爲用戶鍵入關鍵字。我已經使用了幾個關於這個主題的教程,並且他們都顯得前衛而且簡單,但是對於我遇到的麻煩並沒有給出任何預測。
當我使用「SELECT * FROM charlist」時,它將返回所有行,因爲它應該如此。但是當我使用「SELECT * FROM charlist WHERE Character ='」。 $字符。 「'」,我得到以下錯誤:
Error: 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 '= 'X'' at line 1
X是無論用戶鍵入和空白如果沒有在輸入
我在做什麼錯?
下面是完整的代碼:
<?php
$con = mysqli_connect("xxxx", "xxxxxxxx", "xxxxxxx", "xxxxxxxxxx");
if (!$con)
{
die('Could not connect: ' . mysqli_error($con));
}
$character = $_POST[character];
mysqli_select_db($con, "xxxxxxxx");
$sql = "SELECT * FROM charlist WHERE Character = '" . $character . "'";
$result = mysqli_query($con,$sql);
if (!$result) {
printf("Error: %s\n", mysqli_error($con));
exit();
}
echo "<table border='1'>
<tr>
<th>Character</th>
<th>Player</th>
</tr>";
while($row = mysqli_fetch_array($result))
{
echo '<tr style="border-color:#';
echo $row[Color];
echo ';">';
echo '<td style="border-style:solid;border-width:3px;"><a href="';
echo $row[url];
echo '">';
echo $row[Character];
echo '</a></td>';
echo '<td>';
echo $row[Player];
echo'</td>';
echo '</tr>';
}
echo '</table>';
mysqli_close($con);
?>
如果您現在要使用$ character = $ _POST ['character'];那麼你可以刪除這一行並寫入提取($ _ POST); –