MySQL MULTIPLE INSERT获取失败的行?

时间:2016-03-25 09:20:59

标签: php mysql pdo

我是PDO和MySQL的初学者,所以我的问题在这里:

如何确保执行arr=array([['mother', 'uncle', 'mother'], ['aunt', 'sister', 'father']]) (或MULTIPLE INSERT .. SELECT)时 所有数据都将插入数据库?

我知道有一个rowCount()函数,但插入的行数是动态的。 我看到的唯一方法是创建INSERT,然后将其与rowCount()进行比较,但我不确定我是否采用了正确的方法。

如果没有插入所有数据,是否可以获得不起作用的行?

此外,SELECT查询是否可能失败并仅检索数据的一部分? (例如:它必须检索1000行,但由于某些故障,它会检索700行)或者它是全部还是全部?

感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

  

如何确保在执行INSERT .. SELECT(或MULTIPLE INSERT)时,所有数据都将插入数据库中?

如果出现错误,您应该tell PDO to throw an exception,因此如果查询失败,将会出现PHP错误。

  

我知道有一个rowCount()函数

行数与你的情况无关。

  

如果没有插入所有数据,是否可以获得不起作用的行?

建议重做所有成功的查询。为此,您必须将插入内容包装在交易中。

但是,如果你想保持alll以前的插入,你可以在try和catch操作符中包装execute调用,并在里面做任何解决方法。

  

此外,SELECT查询是否可能失败并仅检索数据的一部分?

没有