У меня относительно простой Multi Query with MySQLi.
Запросы просто добавляют данные в 4 таблицы.
Сейчас я пытаюсь встроить некоторую обработку ошибок, чтобы получить сообщение, еслиесть дубликат, и он придумал это:
if ($conn->multi_query($sql) === TRUE) {
echo "Property Added: '$est_name'";
} else if (mysqli_errno() !== 1062) {
print 'Error - Duplicate Entry!';
}
else {
echo "Error: " . $sql . "<br>" . $conn->error;
}
Хотя я думал, что это сработало изначально, я вскоре обнаружил «Ошибка-дубликат записи!»перехватывал все ошибки, даже те, которые не были дубликатами!
Еще одна вещь, которая должна происходить, это то, что, если я намеренно пытаюсь вызвать ошибку в любом из 3 операторов запроса, после первого (т. е. опечатки)продолжает запрос, и я не получаю никакой ошибки - я не уверен, связаны ли проблемы!
Как мне встроить обработку ошибок, если есть дубликат?(И связана ли моя проблема с запросами не с ошибками?)
Мои запросы выглядят примерно так:
$sql = "INSERT INTO Table1 (fname, lname) VALUES ('$fname', '$lname');";
$sql .= "SELECT @get_ID := LAST_INSERT_ID();";
$sql .= "INSERT INTO Table2 (id, street_address ) VALUES (@get_ID, '$street_address');";
$sql .= "INSERT INTO Table3 (id, gender) VALUES (@get_ID, '$gender');";
$sql .= "INSERT INTO Table4 (id, rating) VALUES (@get_ID, '$rating');";