此代码是在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)
,并且数据成功插入到表中。我的问题是如何获得插入的行数?
4条答案
按热度按时间ifmq2ha21#
您可以使用下面的查找查询中受影响的行。
$count是受影响的行。
b1payxdu2#
对象
$wpdb
包含了很多有用的东西,你可以通过转储这个对象来查看公共属性。其中之一就是你要搜索的内容:
whitzsjs3#
很老的问题,我知道,也许这个答案是显而易见的,但张贴在希望它可能是有用的人谁偶然发现它,因为我没有。
在这个使用LOAD DATA的特殊情况下,一个选项可能是在LOAD DATA之前和之后运行sql COUNT(),然后取差值:
我理解,如果桌面上同时有其他活动,这可能不会很好地工作;尽管你可以锁定表来防止冲突更新,并使LOAD DATA更快,你可以通过$wpdb-〉affected_rows来实现,这也值得检查。
毫无疑问,因为这是2年前,因为你问这个,你有任何数量的其他工作的解决方案;希望这对任何在这里搜索解决方案的人都有用。
oxiaedzo4#
使用
wpdb::query()
语句无法获取此信息。它不理解该语句,因此不会自动获取受影响的行数。您自己也无法获取此信息,因为必需的wpdb
类属性(use_mysqli
、dbh
)不是public
。