我尝试将csv文件导入数据库。没有$ daco3它的工作,但只有一次,我删除数据库表运行php脚本中的值,它从csv导入值。我在csv文件中再添加一行。运行这个PHP脚本,没有任何反应。我需要再次删除值。所以我需要删除临时表,因此它会再次导入值,但没有成功。代码如下。 (之后我想在$ daco2中添加WHERE子句,所以它不会再次导入保存值,但是这一刻我对此完全没问题)
if(!file_exists($csvfile)) {
die("File not found. Make sure you specified the correct path.");
}
try {
$pdo = new PDO("mysql:host=$databasehost;dbname=$databasename",
$databaseusername, $databasepassword,
array(
PDO::MYSQL_ATTR_LOCAL_INFILE => true,
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
PDO::MYSQL_ATTR_USE_BUFFERED_QUERY => true
)
);
} catch (PDOException $e) {
die("database connection failed: ".$e->getMessage());
}
$affectedRows = $pdo->exec("
CREATE TEMPORARY TABLE temporary_table4 LIKE ports");
$daco = $pdo->exec("
LOAD DATA LOCAL INFILE ".$pdo->quote($csvfile)." INTO TABLE `$temp`
FIELDS TERMINATED BY ".$pdo->quote($fieldseparator)."
LINES TERMINATED BY ".$pdo->quote($lineseparator));
$daco2 = $pdo->exec("
SHOW COLUMNS FROM `$databasetable`;
INSERT INTO `$databasetable`
SELECT * FROM `$temp` ");
$daco3 = $pdo->exec("DROP TEMPORARY TABLE temporary_table");
哪个给了我
第48行是$ daco3。我没有得到它,我已经设置了PDO :: MYSQL_ATTR_USE_BUFFERED_QUERY属性。 你知道吗,我犯了错误吗?致命错误:未捕获的异常' PDOException' with message' SQLSTATE [HY000]:常规错误:2014在其他未缓冲的查询处于活动状态时无法执行查询。考虑使用PDOStatement :: fetchAll()。或者,如果您的代码只是针对mysql运行,则可以通过设置PDO :: MYSQL_ATTR_USE_BUFFERED_QUERY属性来启用查询缓冲。'在C:\ test \ csv.php:48
由于