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

我今天注意到了一些事情,并认为它可能会在未来造成巨大的问题。让我解释;


例子; 我有一个这样的


$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();

}

发生这种情况时,将处理非错误查询。因此,如果其中一个失败,则统计屏幕是错误的。


我想做的事;


如果其中一个查询有错误,则不应处理任何一个。我怎样才能做到这一点?


紫衣仙女
浏览 134回答 1
1回答

慕容3067478

使用驱动程序无法完成您想要实现的目标mysql_(更新的另一个原因)。With PDOormysqli你可以使用一个事务来实现这个行为。您还应该利用他们准备好的陈述。https://www.php.net/manual/en/mysqli.quickstart.prepared-statements.phphttps://www.php.net/manual/en/pdo.prepared-statements.php然后,一旦完成,使用您选择的任何驱动程序(PDO 是可取的,IMO),请参阅:https://www.php.net/manual/en/mysqli.begin-transaction.phphttps://www.php.net/manual/en/pdo.begintransaction.php
打开App,查看更多内容
随时随地看视频慕课网APP