MySQLi:如何使用准备好的语句插入多个表 [英] MySQLi: How to insert into multiple tables with prepared statements

查看:71
本文介绍了MySQLi:如何使用准备好的语句插入多个表的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我处于需要在查询中插入2个表的情况.我在网上搜索,找不到解决方案.我想做的是在user表&中插入值.同时在profile中插入值.我可以一个接一个的方式进行操作,但我已经知道它效率不高,被认为是较差的编码技术.

当前代码:

$statement = $db->prepare("
    BEGIN;
    INSERT INTO `user`(`username`, `email`, `password_hashed`, `fname`, `lname`, `dob`, `agreement`, `gender`, `access_token`)
    VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?);
    INSERT INTO `profile_picture`(`owner`) VALUES (LAST_INSERT_ID());
    COMMIT;
");
if($statement) {
    $statement->bind_param("ssssssiss", $username, $email, $hashedPassword, $fname, $lname, $dob, $agreement, $gender, $access_token);
    $statement->execute();
    $statement->close();

    echo "DONE";
    exit();
}
else printf("Error: %s.\n", $db->error);

解决方案

尝试使用mysqli_multi_query,请检查此链接,例如

Try using mysqli_multi_query, Check this link for example http://blog.ulf-wendel.de/2011/using-mysql-multiple-statements-with-php-mysqli/

这篇关于MySQLi:如何使用准备好的语句插入多个表的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆