php - 使用PHP将csv文件导入mysql

标签 php mysql

我目前正在尝试使用 PHP 通过 csv 文件将数据导入 mysql,但这样做时出现以下错误:

上传文件名:test.csv 您的SQL语法有误;查看与您的 MySQL 服务器版本对应的手册,了解在第 1 行的“名称、国家/地区、货币)值(‘公司名称’、‘国家/地区’、‘货币’)’附近使用的正确语法

所以请帮我解决上面的错误 提前致谢

这是我正在使用的代码

<?php
ini_set('display_errors', 1);
error_reporting(E_ALL);
$db_host = 'localhost';
$db_user = 'root';
$db_pwd = '';

$database = 'automation';
$table = 'company';

if (!mysql_connect($db_host, $db_user, $db_pwd))
    die("Can't connect to database");

if (!mysql_select_db($database))
    die("Can't select database");


    if(isset($_POST['submit']))
    {
         $fname = $_FILES['sel_file']['name'];
         echo 'upload file name: '.$fname.' ';
         $chk_ext = explode(".",$fname);

         if(strtolower(end($chk_ext)) == "csv")
         {

             $filename = $_FILES['sel_file']['tmp_name'];
             $handle = fopen($filename, "r");

             while (($data = fgetcsv($handle, 1000, ",")) !== FALSE)
             {
                $sql = "INSERT into company(Company name,Country,Currency) values('$data[0]','$data[1]','$data[2]')";
                mysql_query($sql) or die(mysql_error());
             }

             fclose($handle);
             echo "Successfully Imported";

         }
         else
         {
             echo "Invalid File";
         }   
    }

    ?>
    <h1>Import CSV file</h1>
    <form action='<?php echo $_SERVER["PHP_SELF"];?>' method='post' enctype="multipart/form-data">
        Import File : <input type='file' name='sel_file' size='100'>
        <input type='submit' name='submit' value='submit'>
    </form>

最佳答案

如果 company name 列是两个单词,则必须用反引号将其括起来。

如果数据中有引号(或者上帝保佑,某种 SQL 注入(inject)),你基本上就完蛋了。

mysql_* 已弃用,使用不安全。您应该查看 PDO 或 MySQLi 准备好的语句。

而且,如果这是一次性上传,请考虑使用 phpMyAdmin 导入您的 CSV。

关于php - 使用PHP将csv文件导入mysql,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36693503/

相关文章:

mysql - 有没有一种方法可以选择一个值并将其他相同的值转换为 null

Mysql "Where"子句的多个参数

mysql - 如何从连接的 SQL 表创建报告?

php - 如何显示弹出窗口,其中包含从 ID 获取数据的表中选择的数据?

javascript - 点击按钮后如何重定向

php - Laravel 的 ShouldQueue 是如何工作的

javascript - 无法将 php 变量分配给脚本

php - php的输出是有限的

javascript - 输入法所见即所得编辑器不在 mysql 数据库中存储值?

mysql - 表 'session_variables' 的命令被拒绝