我是PDO和MySQL的初学者,所以我的问题在这里:
如何确保执行arr=array([['mother', 'uncle', 'mother'],
['aunt', 'sister', 'father']])
(或MULTIPLE INSERT .. SELECT
)时
所有数据都将插入数据库?
我知道有一个rowCount()函数,但插入的行数是动态的。
我看到的唯一方法是创建INSERT
,然后将其与rowCount()进行比较,但我不确定我是否采用了正确的方法。
如果没有插入所有数据,是否可以获得不起作用的行?
此外,SELECT查询是否可能失败并仅检索数据的一部分? (例如:它必须检索1000行,但由于某些故障,它会检索700行)或者它是全部还是全部?
感谢您的帮助。
答案 0 :(得分:1)
如何确保在执行INSERT .. SELECT(或MULTIPLE INSERT)时,所有数据都将插入数据库中?
如果出现错误,您应该tell PDO to throw an exception,因此如果查询失败,将会出现PHP错误。
我知道有一个rowCount()函数
行数与你的情况无关。
如果没有插入所有数据,是否可以获得不起作用的行?
建议重做所有成功的查询。为此,您必须将插入内容包装在交易中。
但是,如果你想保持alll以前的插入,你可以在try和catch操作符中包装execute调用,并在里面做任何解决方法。
此外,SELECT查询是否可能失败并仅检索数据的一部分?
没有