MySQLi:如何使用准备好的语句插入多个表 [英] MySQLi: How to insert into multiple tables with prepared statements
本文介绍了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屋! 解决方案
查看全文