繁体   English   中英

在mysqli准备好的语句中插入多行

[英]Insert multiple rows in mysqli prepared statement

我确实有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.');
}  

我的问题是,有人可以告诉我有一种方法可以使用单个查询吗? 如果是这样,它的状况如何?

希望有人可以帮助我。 谢谢。

您需要学习阅读MySQL手册。 如果您检出INSERT定义,则会在VALUES规范中找到它:

使用VALUES语法的INSERT语句可以插入多行。 为此,请包括多个列值列表,每个列值括在括号内并用逗号分隔。 例:

插入tbl_name(a,b,c)值(1,2,3),(4,5,6),(7,8,9);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM