php - 将 CSV 文件直接导入 MySQL 数据库

标签 php mysql csv

Possible Duplicate:
Import CSV to mysql

是的,我需要一些帮助:

我正在尝试使用 php 将 .csv 文件导入 mysql 数据库,而不是通过 phpmyadmin 手动执行此操作。

这是我目前的代码:

if($_REQUEST['func'] == "iid"){
    $db->conn = new mysqli(DB_SERVER, DB_USER, DB_PASSWORD, DB_NAME) or 
                      die('There was a problem connecting to the database.');
    $csv = $_POST['csv-file'];
    $path = $csv;
    $row = 1;
    if (($handle = fopen($path, "r")) !== FALSE) {
        while (($data = fgetcsv($handle, 1000, ";")) !== FALSE) {
            $row++;
            $data_entries[] = $data ;

        }
        fclose($handle);
    }
    // this you'll have to expand
    foreach($data_entries as $line){
        $sql = $db->conn->prepare('INSERT INTO `bd_results`');

        $db->execute($line);
    }
}

但是我收到以下错误:

Fatal error: Call to undefined method stdClass::execute() in /homepages/19/d372249701/htdocs/business-sites/bowlplex-doubles-new/admin/scores.php on line 44

作为引用,我使用的代码取自:Here

我不太熟悉 $db->conn 业务,我习惯了 mysql_connect!因此,任何帮助将不胜感激。

最佳答案

尝试这个简单的。

if (($handle = fopen("google.csv", "r")) !== FALSE) {
    while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) {
        $db->conn->query("INSERT INTO values('" . implode('\',\'', $data) . "');");
    }
    fclose($handle);
}

如果 CSV 值还没有引号,您的脚本可能还需要添加引号。如果您需要处理 CSV 文件中的引号和所有内容,我建议您查看我的博客文章 http://www.fusionswift.com/2012/07/php-import-csv-to-mysql/

关于php - 将 CSV 文件直接导入 MySQL 数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11461313/

相关文章:

php - MYSQL - 更新但保留旧信息

php - 在 null 上调用成员函数 connection()

php - 提交表单时如何将日期和时间添加到数据库中?

mysql - Powershell - 插入 MySQL 数据库表错误?

python - Pandas:如何添加缺少的标题列

php - 在 PHP 中转义 MySQL 查询 - mysql_query() 更新不执行任何操作

php - 是否可以在 codeigniter 的助手中使用多个 $this

javascript - 使用 AngularJS 和 NodeJS 从 MySQL 中检索数据

python - csv.错误 : did you open the file in text mode?

java - BigQuery 上传 csv 文件的时间戳错误