0
基本上我想要做的是當用戶提交表單時通過ajax註冊用戶。mysqli-> multi_query INSERT INTO no result
我想我的數據存儲在3個不同的表中。因此,這裏是我跑
$sql_insert = "BEGIN;
INSERT INTO $table_name_primary (role, email, verified)
VALUES(1, '$email', 0);
INSERT INTO $table_name_details (user_id, first_name)
VALUES(LAST_INSERT_ID(),'$name');
INSERT INTO $table_name_log_in (user_id, hash_algo, iteration, pass_salt, pass_hash)
VALUES(LAST_INSERT_ID(), '$algo', $ite, '$salt', '$hash');
COMMIT;";
$mysqli = new mysqli(DB_HOST, DB_USER, DB_PASSWORD, DB_NAME);
if ($mysqli->multi_query($sql_insert)) {
do {
/* store first result set */
if ($result = $mysqli->store_result()) {
while ($row = $result->fetch_row()) {
printf("%s\n", $row[0]);
}
$result->free();
}
/* print divider */
if ($mysqli->more_results()) {
printf("-----------------\n");
}
} while ($mysqli->next_result());
}
這裏查詢被執行的代碼,也沒有由服務器拋出錯誤,但是沒有排在末尾添加到數據庫中。 我錯過了什麼?
如果有人提出更好的方法,我會很高興。
刪除BEGIN和COMMIT,我懷疑它把它作爲一個單一query.OR放在雙引號每個查詢,請用逗號分隔。 – Mihai
Echo'$ sql_insert'然後嘗試直接對數據庫運行查詢;這會告訴你,如果查詢是有效的或不... –
@TiesonT。是的,它在phpMyAdmin成功運行,但不在這裏 – Anuj