Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/266.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如果以前的查询有错误,以后的查询会发生什么情况 当我保存一个记录数组,即多个记录时,如果中间的一个记录有一个Error SQL,会发生什么?今后是否将不插入所有记录,或仅插入当前行,或不插入任何记录?我该如何处理这种情况_Php_Pdo - Fatal编程技术网

Php 如果以前的查询有错误,以后的查询会发生什么情况 当我保存一个记录数组,即多个记录时,如果中间的一个记录有一个Error SQL,会发生什么?今后是否将不插入所有记录,或仅插入当前行,或不插入任何记录?我该如何处理这种情况

Php 如果以前的查询有错误,以后的查询会发生什么情况 当我保存一个记录数组,即多个记录时,如果中间的一个记录有一个Error SQL,会发生什么?今后是否将不插入所有记录,或仅插入当前行,或不插入任何记录?我该如何处理这种情况,php,pdo,Php,Pdo,PDO驱动程序是Mysql看看PDO事务: 您可以检查是否有错误,如果有,请回滚您的提交或执行您打算执行的任何操作查看PDO事务: 您可以检查是否有错误,如果有,请回滚您的提交或执行您打算执行的任何操作这些情况都可以使用 经典的例子是当我想把钱从我的账户转到另一个账户时。有两个查询需要完成: 把钱从我的帐户上取下来 把钱存入另一个账户 当然,如果第二个查询失败,我希望回滚第一个查询并通知用户错误。这就是交易的目的 如果不使用事务,当第二个查询失败时,仍将执行第一个查询,而不会回滚,这样钱就会消失

PDO驱动程序是Mysql

看看PDO事务:


您可以检查是否有错误,如果有,请回滚您的提交或执行您打算执行的任何操作

查看PDO事务:


您可以检查是否有错误,如果有,请回滚您的提交或执行您打算执行的任何操作

这些情况都可以使用

经典的例子是当我想把钱从我的账户转到另一个账户时。有两个查询需要完成:

把钱从我的帐户上取下来 把钱存入另一个账户 当然,如果第二个查询失败,我希望回滚第一个查询并通知用户错误。这就是交易的目的


如果不使用事务,当第二个查询失败时,仍将执行第一个查询,而不会回滚,这样钱就会消失。这是MySQL的默认行为。

这些情况都是通过

经典的例子是当我想把钱从我的账户转到另一个账户时。有两个查询需要完成:

把钱从我的帐户上取下来 把钱存入另一个账户 当然,如果第二个查询失败,我希望回滚第一个查询并通知用户错误。这就是交易的目的


如果不使用事务,当第二个查询失败时,仍将执行第一个查询,而不会回滚,这样钱就会消失。这是MySQL的默认行为。

一般的解决方案是使用事务。你能用它做什么,你有多少控制权,取决于RDBMS。例如:PostgreSQL允许您创建一个保存点,您可以回滚到该保存点


另一个解决方案是使用。在这种情况下,您可以指定在发生错误时应采取的措施,一般的解决方案是使用事务。你能用它做什么,你有多少控制权,取决于RDBMS。例如:PostgreSQL允许您创建一个保存点,您可以回滚到该保存点


另一个解决方案是使用。在这种情况下,您可以指定发生错误时应采取的措施,包括

什么类型的错误?对于哪个RDBMS?我的意思是一个sql错误,比如某个字段/记录为空,但根据db,当开始第一个问题错误时,它不应该是MySQL停止什么类型的错误?对于哪个RDBMS?我的意思是一个sql错误,比如某个字段/记录为空,但根据db,当开始第一个问题错误时,它不应该是MySQL停止,但是,如果有错误,您需要回滚,那么,这就像开始另一个没有事务的查询,或者不是吗?我希望除了当前的错误之外,其他一些查询执行继续。。。那么会发生这种情况吗?但是,如果有错误,您需要回滚,那么,就像在没有事务的情况下开始另一个查询一样?我希望除了当前的errorsome查询执行之外,继续执行。。。那么,除了当前的errorsome查询执行之外,我还希望继续执行该事件吗。。。那么这种情况是否会发生呢?不,使用MySQL的事务,您将无法做到这一点。在您的情况下,存储过程可能不可行。您可以始终创建一个准备好的语句,然后在循环中使用新数据执行该语句。如果发生错误,execute方法将返回false。我希望除当前errorsome查询执行之外的其他查询继续执行。。。那么这种情况是否会发生呢?不,使用MySQL的事务,您将无法做到这一点。在您的情况下,存储过程可能不可行。您可以始终创建一个准备好的语句,然后在循环中使用新数据执行该语句。如果发生错误,execute方法将返回false。我希望除当前errorsome查询执行之外的其他查询继续执行。。。那么,除了当前的errorsome查询执行之外,我还希望继续执行该事件吗。。。那么这会发生吗