获取MySQL中受影响的行数

问题描述 投票:0回答:1

试图获取受影响的行返回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);

存储CSV但返回0

mysql pdo load-data-infile
1个回答
0
投票

解决:

完全支持此脚本:

LOAD DATA LOCAL INFILE 'file.csv' INTO TABLE tablename 
FIELDS TERMINATED BY ',' 
LINES TERMINATED BY ' ' ( `Col1`, `Col2`, `Col3`)

但我在一些查询中将其与其他人合并:

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`);

这是错误的,因为qazxsw poi无法返​​回受影响的表或行的数量。

而不是它,解决我需要通过一个数组,因为我的脚本支持它:

$PDO->exec()

同样的:$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`);";

© www.soinside.com 2019 - 2024. All rights reserved.