データベース内のすべてのアーティストを最初の文字で返すようにしようとしているサイトに検索機能があります。ここで私が持っているコードです:sqlは最初の文字が正しく機能していない
$connect = mysqli_connect($host_name, $user_name, $password, $database);
$arr = array();
$keywords = $connect->real_escape_string($_POST["keywords"]);
$sql = "SELECT * FROM `karaoke` WHERE `artist` LIKE '" . $keywords . "%'";
$result = $connect->query($sql) or die($mysqli->error);
if ($result->num_rows > 0) {
while ($obj = $result->fetch_object()) {
$arr[] = array("artist" => $obj->artist, "song" => $obj->song);
}
}
echo json_encode($arr);
キーワードは2文字以上であるが、私は試してみて、ちょうど1文字で検索したとき、私は結果を得るていない場合は、この検索が正常に動作します。私はphpMyAdminコンソールにログインしようとしましたが、そこで検索を行っても問題ありません。結果が私のsearch-alpha.phpに返されない理由は何ですか?
結果の前に 'var_dump($ sql)'という行を追加し、出力を投稿してください! – Hackerman
'$ sql'をエコーして、正しくフォーマットされていることを確認することができます – Derek
$ sqlをエコーしてコピーし、phpMyAdminで実行しても問題なく動作しました。 –