2016-03-06 35 views
0

我非常新的SQL交易並試圖執行下面這並不幸的是沒有工作的語句...

$stmt = $mysqli->prepare(" 

BEGIN; 

INSERT INTO groups (group_name, group_desc, user_id_fk) VALUES ("'.$groupName.'","'.$groupDesc.'","'.$user_id.'"); 

INSERT INTO group_users (group_id_fk, user_id_fk) VALUES (LAST_INSERT_ID(), "'.$username.'"); 

COMMIT; 

") or trigger_error($mysqli->error, E_USER_ERROR); 

$stmt->execute(); 

$stmt->close(); 

這甚至可能是什麼我想在這裏或者是它完全錯誤?

我很感謝每一個迴應,謝謝!

+0

請介紹「沒有工作」。 –

+0

好吧,提交表單後我得到一個空白屏幕...... 儘管如此,我最初的問題仍然存在,就好像這個聲明甚至可以通過這個函數提交? – user3174027

+0

你在哪裏綁定你的參數? – Lori

回答

0

您正在使用prepare()錯誤的方式。如果直接在查詢中添加變量,使用prepare()是絕對沒有意義的。

這是你如何查詢必須執行:

$mysqli->query("BEGIN"); 

$sql = "INSERT INTO groups (group_name, group_desc, user_id_fk) VALUES (?,?,?)"; 
$stmt = $mysqli->prepare($sql); 
$stmt->bind_param("ssi",$groupName,$groupDesc,$user_id); 
$stmt->execute(); 

$sql = "INSERT INTO group_users (group_id_fk, user_id_fk) VALUES (LAST_INSERT_ID(), ?)"; 
$stmt = $mysqli->prepare($sql); 
$stmt->bind_param("s",$username); 
$stmt->execute(); 

$mysqli->query("COMMIT");