私はこの問題で頭を悩ませてきました.GoogleとStack Overflowをそれぞれ100回検索した後、それについて率直に尋ねることにしました.
ユーザーがキーワードを入力すると、PHP と MySQL を使用してデータベースを検索するページを作成しようとしています。この件に関していくつかのチュートリアルを使用しましたが、それらはすべて前もってシンプルに見えましたが、私が抱えていた問題についての予測はありませんでした.
「SELECT * FROM charlist」を使用すると、すべての行が返されます。しかし、 "SELECT * FROM charlist WHERE Character ='" を使用すると。$キャラクター。"'"、次のエラーが表示されます。
エラー: SQL 構文にエラーがあります。MySQL サーバーのバージョンに対応するマニュアルで、1 行目の '= 'X'' 付近で使用する正しい構文を確認してください。
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);
?>