我有3个mysql表“users”,“banks”和“user_bank”。每个用户必须至少有一个银行,最多只有两个。
当用户注册到系统时,我还需要将银行详细信息插入user_bank
表。
这是我尝试的方式:
$success=FALSE;
if($success == FALSE) {
$query = "INSERT INTO user_bank (
beneficiary_id
, beneficiary_bank_id
, branch_id
) VALUES (?, ?, ?)";
$stmt = $mysqli->prepare($query);
$stmt->bind_param('iii', $lastInsertId
, $bank_one
, $branchId_one
);
$stmt->execute();
if ($stmt->affected_rows == 1) {
$success=TRUE;
if(!empty($bank_two) && !empty($branchId_two)) {
$query = "INSERT INTO user_bank (
id
, bank_id
, branch_id
) VALUES (?, ?, ?)";
$stmt = $mysqli->prepare($query);
$stmt->bind_param('iii', $lastInsertId
, $bank_two
, $branchId_two
);
$stmt->execute();
$success=TRUE;
}
}
}
if ($success == TRUE) {
$messages = array('success'=>true, 'message'=>'You successfully registered.');
}
我的问题是,有人可以告诉我,我有办法使用单个查询吗?如果是这样怎么做?
希望有人可以帮助我。 谢谢。
答案 0 :(得分:1)
您需要学习阅读MySQL手册。如果您查看INSERT定义,可以在VALUES规范中找到它:
使用VALUES语法的INSERT语句可以插入多行。为此,请包含多个列值列表,每个列值都括在括号内并用逗号分隔。例如:
INSERT INTO tbl_name(a,b,c)VALUES(1,2,3),(4,5,6),(7,8,9);