[英]Get number of affected rows in MySQL
trying to get the affected row return 0 file contain 250k records: 尝试获取受影响的行,返回0个文件,包含250k条记录:
$affectedRows = 0;
$affectedRows = $pdo->exec(
"DELETE FROM tablename WHERE Col3 BETWEEN '2018-01-01 00:00:00' AND '2018-01-31 00:00:00';
ALTER TABLE tablename AUTO_INCREMENT = 1;
LOAD DATA LOCAL INFILE 'file.csv' INTO TABLE tablename
FIELDS TERMINATED BY ','
LINES TERMINATED BY ' ' ( `Col1`, `Col2`, `Col3`)");
echo var_dump($affectedRows);
Store the CSV but Return 0 存储CSV但返回0
Solved with: 解决:
This script is full suported: 该脚本已被完全支持:
LOAD DATA LOCAL INFILE 'file.csv' INTO TABLE tablename
FIELDS TERMINATED BY ','
LINES TERMINATED BY ' ' ( `Col1`, `Col2`, `Col3`)
But i merge it with other in some Query Like that: 但是我将其与其他查询合并,例如:
DELETE FROM tablename WHERE date BETWEEN '$Date1' AND '$Date2';
ALTER TABLE tbalename AUTO_INCREMENT = 1;
LOAD DATA LOCAL INFILE 'file.csv' INTO TABLE tablename
FIELDS TERMINATED BY ','
LINES TERMINATED BY ' ' ( `Col1`, `Col2`, `Col3`);
this is wrong, becouse $PDO->exec()
Cant return the number of affected table or rows. 这是错误的,因为
$PDO->exec()
无法返回受影响的表或行的数量。
Instead of it, to solve i need past an array, becouse my script support it like that: 代替它,要解决我需要经过一个数组的问题,因为我的脚本像这样支持它:
$stmtpre[1] = "DELETE FROM tablename WHERE date BETWEEN '$Date1' AND '$Date2';";
$stmtpre[2] = "ALTER TABLE tbalename AUTO_INCREMENT = 1;";
$stmtpre[3] = "LOAD DATA LOCAL INFILE 'file.csv' INTO TABLE tablename
FIELDS TERMINATED BY ','
LINES TERMINATED BY ' ' ( `Col1`, `Col2`, `Col3`);";
Same this: https://stackoverflow.com/a/52370701/9632001 与此相同: https : //stackoverflow.com/a/52370701/9632001
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.