This code is to use in WordPress plugin.
The following is my code I am using to insert data from CSV file to database:
$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);
When I do this var_dump($query);
it shows int(0)
, and data is successfully inserted in table. My question is how can I get number of inserted rows?
答案 0 :(得分:0)
您可以使用下面的查询中找到受影响的行。
$count = $wpdb->query($sql);
$ count是受影响的行。
答案 1 :(得分:0)
您不能使用带有LOAD DATA
的{{1}}语句来获取此信息。它不理解该语句,因此不会自动获取受影响的行数。您也无法自己获得它,因为必要的wpdb::query()
类属性(wpdb
,use_mysqli
)不是dbh
。
答案 2 :(得分:0)
我知道这是一个很老的问题,也许这个答案很明显,但是希望发布它对像我一样偶然发现它的人有用。
在这种特殊情况下,使用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年了,您还有许多其他可行的解决方案;希望这对在这里搜索解决方案的人有用。
答案 3 :(得分:0)
对象$wpdb
包含许多有用的东西。您可以通过转储该对象来查看它,以查看公共属性。
其中之一是您要搜索的内容
echo $wpdb->affected_rows;