csv 如何获得WordPress查询受影响的行数?

fdx2calv  于 2023-03-21  发布在  WordPress
关注(0)|答案(4)|浏览(144)

此代码是在WordPress插件中使用。
下面是我的代码,我正在使用插入数据从CSV文件到数据库:

$sql="LOAD DATA LOCAL INFILE '".$fileurl."' INTO TABLE ".$table_name."
                FIELDS TERMINATED BY ','
                LINES TERMINATED BY '\r\n' IGNORE 1 LINES (`first_name`,`last_name`, `email`, `mobile_phone`, `address_1`, `address_2`, `city`, `state`, `zip`, `about_us` );
                ";
                $query = $wpdb->query($sql);

当我执行var_dump($query);时,它显示int(0),并且数据成功插入到表中。我的问题是如何获得插入的行数?

ifmq2ha2

ifmq2ha21#

您可以使用下面的查找查询中受影响的行。

$count = $wpdb->query($sql);

$count是受影响的行。

b1payxdu

b1payxdu2#

对象$wpdb包含了很多有用的东西,你可以通过转储这个对象来查看公共属性。
其中之一就是你要搜索的内容:

echo $wpdb->rows_affected;
whitzsjs

whitzsjs3#

很老的问题,我知道,也许这个答案是显而易见的,但张贴在希望它可能是有用的人谁偶然发现它,因为我没有。
在这个使用LOAD DATA的特殊情况下,一个选项可能是在LOAD DATA之前和之后运行sql COUNT(),然后取差值:

$count_before = $wpdb->query("SELECT COUNT(*) FROM $table_name");
// LOAD DATA ...
$count_after = $wpdb->query("SELECT COUNT(*) FROM $table_name");
$new_rows = $count_after - $count_before;

我理解,如果桌面上同时有其他活动,这可能不会很好地工作;尽管你可以锁定表来防止冲突更新,并使LOAD DATA更快,你可以通过$wpdb-〉affected_rows来实现,这也值得检查。
毫无疑问,因为这是2年前,因为你问这个,你有任何数量的其他工作的解决方案;希望这对任何在这里搜索解决方案的人都有用。

oxiaedzo

oxiaedzo4#

使用wpdb::query()语句无法获取此信息。它不理解该语句,因此不会自动获取受影响的行数。您自己也无法获取此信息,因为必需的wpdb类属性(use_mysqlidbh)不是public

相关问题