【问题标题】:Errors importing CSV file into DB using PDO after upgrade to PHP 5.4升级到 PHP 5.4 后使用 PDO 将 CSV 文件导入数据库时​​出错
【发布时间】:2014-10-13 20:31:11
【问题描述】:

我有一个将 CSV 文件导入我的数据库的 php 文件。由于我的托管服务提供商升级到 PHP 5.4,我在 'LINES TERMINATED BY' 行上收到错误消息,但我不知道为什么。这是我的代码:

<?php
    require('phpsqlajax_dbinfo.php');
    $databasehost = $db_host; 
    $databasename = $db_name; 
    $databasetable = "tbl_csvImport"; 
    $databaseusername=$db_user; 
    $databasepassword = $db_pass; 
    $fieldseparator = ","; 
    $lineseparator = "\n";
    $csvfile = "doecsv.csv";
    echo $lineseparator;
    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
            )
        );
    } catch (PDOException $e) {
        die("database connection failed: ".$e->getMessage());
    }

    $pdo->exec("DELETE FROM `$databasetable`");

    try {
        $affectedRows = $pdo->exec("
            LOAD DATA LOCAL INFILE ".preg_replace('/"[^"]+"/','',$pdo->quote($csvfile))." INTO TABLE `$databasetable`
            FIELDS TERMINATED BY ".$pdo->quote($fieldseparator)."
            OPTIONALLY ENCLOSED BY ".$pdo->quote('"')."
            LINES TERMINATED BY ".$pdo->quote($lineseparator)."IGNORE 1 LINES");
    } catch (Exception $e) {
        die ("CSV Parse Failed: ".$e->getMessage()." | Error on line: ".$e->getLine());
    }

    echo" Success. <br/>";  
?>

错误代码:SQLSTATE[42000]:语法错误或访问冲突:1148 此 MySQL 版本不允许使用的命令 |在线错误:35

【问题讨论】:

  • 错误信息是什么?
  • IGNORE 之前不是少了一个空格吗?
  • 我在忽略之前添加了一个空格并尝试了它,但没有帮助。我已经把它恢复到原来的样子了。
  • 你检查过 phpinfo();是否加载了 PDO?更新 PHP 后,有时我必须更改扩展的加载顺序,因为没有加载任何 SQL 扩展。

标签: php csv


【解决方案1】:

我找到了适合我的解决方法:

http://crewow.com/CSV-Importer-in-MySQL.php

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-06-14
    • 1970-01-01
    • 2023-02-11
    • 2017-04-06
    • 1970-01-01
    • 1970-01-01
    • 2023-03-10
    相关资源
    最近更新 更多