私の場合、を使用して複数のテーブルから削除してLEFT JOIN
おり、削除する質問IDの配列を提供する必要があります。質問IDの配列はです$questions_to_delete
。
配列をパラメーターとしてバインドできないのmysqli
は一種の苦痛です。私はいくつかのSOの質問を調べて、これに到達しました。
$params = implode(',', array_fill(0, count($questions_to_delete), '?'));
$types = array_fill(0, count($questions_to_delete), 'i');
$delete_questions = $mysqli->prepare('DELETE ...
FROM questions
LEFT JOIN ...
WHERE questions.id IN ('.$params.')');
call_user_func_array(array(&$delete_questions, 'bind_param'), array_merge($types, $questions_to_delete));
$delete_questions->execute();
$delete_questions->close();
私が得ているエラーは
警告:mysqli_stmt :: bind_param()[mysqli-stmt.bind-param]:型定義文字列の要素の数がバインド変数の数と一致しません
いくつかの答えが&$delete_questions
対$delete_questions
に使用されていることに気づきましたが、PHPが何について不平を言っているのかについて私は困惑しています。