为了账号安全,请及时绑定邮箱和手机立即绑定

如果其中一个查询有错误,请不要运行任何查询。我怎么做?

如果其中一个查询有错误,请不要运行任何查询。我怎么做?

PHP
紫衣仙女 2022-07-16 10:21:48
我今天注意到了一些事情,并认为它可能会在未来造成巨大的问题。让我解释;例子; 我有一个这样的$query1 = "INSERT INTO table1(col1,col2,col3) VALUES('$col1','$col2','$col3')";$query2 = "INSERT INTO table2(col1,col2,col3) VALUES('$col1','$col2','$col3')";$query3 = "UPDATE table3 SET col1 = '$col1' WHERE id='$id'";if (mysql_query($query1) && mysql_query($query2) && mysql_query($query3)) {    echo "successful message";}else {    echo mysql_error();}发生这种情况时,将处理非错误查询。因此,如果其中一个失败,则统计屏幕是错误的。我想做的事;如果其中一个查询有错误,则不应处理任何一个。我怎样才能做到这一点?
查看完整描述

1 回答

?
慕容3067478

TA贡献1773条经验 获得超3个赞

使用驱动程序无法完成您想要实现的目标mysql_(更新的另一个原因)。With PDOormysqli你可以使用一个事务来实现这个行为。您还应该利用他们准备好的陈述。

  1. https://www.php.net/manual/en/mysqli.quickstart.prepared-statements.php

  2. https://www.php.net/manual/en/pdo.prepared-statements.php

然后,一旦完成,使用您选择的任何驱动程序(PDO 是可取的,IMO),请参阅:

  1. https://www.php.net/manual/en/mysqli.begin-transaction.php

  2. https://www.php.net/manual/en/pdo.begintransaction.php


查看完整回答
反对 回复 2022-07-16
  • 1 回答
  • 0 关注
  • 132 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号