gpt4 book ai didi

php - MySQL MULTIPLE INSERT 获取失败的行?

转载 作者:行者123 更新时间:2023-11-29 11:38:35 26 4
gpt4 key购买 nike

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

如何确定执行 INSERT .. SELECT(或 MULTIPLE INSERT)时所有数据都会插入数据库吗?

我知道有一个 rowCount() 函数,但插入的行数是动态的。我看到的唯一方法是创建一个SELECT count(*),然后将其与 rowCount() 进行比较,但我不确定我是否以正确的方式执行此操作。

如果不是所有数据都被插入,是否有可能获取不起作用的行?

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

感谢您的帮助。

最佳答案

How can I be sure that when performing an INSERT .. SELECT (or MULTIPLE INSERT) all data will be inserted in database?

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

I know there is a rowCount() function

行数与您的情况无关。

And if not all data were inserted, is it possible to get rows which didn't work?

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

但是,如果您想保留所有先前的插入,您可以将执行调用包装在 try 和 catch 运算符中,并在内部执行任何解决方法。

Also, is it possible that a SELECT query fails and retrieves only a few part of the data?

没有。

关于php - MySQL MULTIPLE INSERT 获取失败的行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36217207/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com