私は特定のユーザーのために特殊化を追加するためにデータベースとやりとりするPhp関数に取り組んでいます。私はmysqliマルチクエリを使用してこれを達成するために行く最善の方法を考え出した。残念ながら、クエリのコードは正しく実行されていません。 db接続は問題なく動作しており、データベースのWebアプリケーションの作業に入力すると個々のクエリが実行されます。正しく表示されているにもかかわらず、Mysqliマルチクエリが機能しない
function assign_specialties($id, $specialties) {
$conn = new mysqli($GLOBALS['servername'], $GLOBALS['username'], $GLOBALS['password'], 'visio');
if ($conn->connect_error) {
die("$conn->connect_errno: $conn->connect_error");
}
$query = "";
$id = mysqli_real_escape_string($conn, $id);
foreach ($specialties as $specialty) {
$specialty = mysqli_real_escape_string($conn, $specialty);
$query .= " INSERT INTO member_specialization (member_id, specialization_name) VALUES ('$id', '$specialty');";
}
//$query = mysqli_real_escape_string($conn, $query);
if ($conn->multi_query($query)) {
echo "<script> alert('yes')</script>";
}
else {
echo "<script> alert('$query')</script>";
}
$conn->close();
}
私はまた、セミコロンで区切られた各クエリを持っています。これは、私はそれがユーザーエラーでなければならないことを知っているので、私は複数のクエリを試したことが初めてです、私はちょうどそのエラーが何であるか把握することはできません。クエリ内のデータは適切にエスケープする必要があります
「... INSERT;」先頭の空白文字を ''試し –
はミスをチェックするために、あなたのSQLクエリからエコー結果 –
てみて何も変更されていないよう。エコーに何も見えない場合は、エコーされたクエリをdb(phpmyadmin)に直接コピーしてSQLエラーを除外して実行してみてください。 –