Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/59.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
php中加载数据填充错误_Php_Mysql_Load Data Infile - Fatal编程技术网

php中加载数据填充错误

php中加载数据填充错误,php,mysql,load-data-infile,Php,Mysql,Load Data Infile,我想将csv文件内容导入到数据库表中,我使用的代码是,在phpmyadmin控制台中粘贴csv文件时,它可以完美地工作 LOAD DATA LOCAL INFILE '/Applications/MAMP/htdocs/testApp/trips.csv' INTO TABLE trips FIELDS TERMINATED BY ',' LINES TERMINATED BY '\n' IGNORE 1 ROWS (type,startDate,endDate,steps,coordinate

我想将csv文件内容导入到数据库表中,我使用的代码是,在phpmyadmin控制台中粘贴csv文件时,它可以完美地工作

LOAD DATA LOCAL INFILE '/Applications/MAMP/htdocs/testApp/trips.csv' INTO TABLE trips FIELDS TERMINATED BY ',' LINES TERMINATED BY '\n' IGNORE 1 ROWS (type,startDate,endDate,steps,coordinates,distance)
但是,在php文件中使用它时,我有一个错误:

<?php

$host       = "localhost"; //Your database host server
$db         = "dbTest"; //Your database name
$user       = "root"; //Your database user
$pass       = "root"; //Your password
$connection = mysqli_connect($host, $user, $pass);

//Check to see if we can connect to the server
if (!$connection) {
    die("Database server connection failed.");
    die(mysqli_error($db));
} else {
    //Attempt to select the database
    $dbconnect = mysqli_select_db($connection, $db);
    //Check to see if we could select the database
    if (!$dbconnect) {
        die("Unable to connect to the specified database!");
    } else {
        $sql = "LOAD DATA LOCAL INFILE '/Applications/MAMP/htdocs/testApp/trips.csv' 
                INTO TABLE trips
                FIELDS TERMINATED BY ',' 
                LINES TERMINATED BY '\\n' 
               IGNORE 1 ROWS (type,startDate,endDate,steps,coordinates,distance)"
                ;

        $result = mysql_query($sql, $connection);

        if (mysql_affected_rows() == 1) {
            $message = "The trip was successfully inserted!";
        } else {
            $message = "The trip insert failed";
            $message .= mysql_error();
        }

        echo $message;
    }
}
?>

编辑:您在同一脚本中混合了两个插件MYSQL和MYSQLi,下面我使用MYSQLi插件转储了代码的剩余部分,因为您的上部使用MYSQLi

注意:你不能那样做。选择任意一个API

    $result = mysqli_query($connection, $sql);

    if (mysqli_affected_rows($connection) >= 1) {
        $message = "The trip was successfully inserted!";
    } else {
        $message = "The trip insert failed";
        $message .= mysqli_error($connection);
    }

尝试将trip.csv文件移动到
datadir
-您可以通过以下命令找到它:
SELECT@@datadir
您混合了MySQL和MySQLi插件-您正在尝试连接MySQLi,然后使用MySQL执行查询。你不能那样做。选择一个API并始终如一地使用它

因此:


最终,这与加载数据填充无关,您应该使用基本的
选择
!我建议您阅读有关所使用函数的文档。

请查看此处是否确实有\n作为新行符号?尝试\r\n检查此错误后,查询将加载文件。如果要传递反斜杠和“n”而不是换行符,则可能必须转义
\n
。为什么要混合使用mysql和mysqli函数???仔细检查答案好的答案会解释错误,而不仅仅是放弃替换代码。@LightnessRacesinOrbit,我已经在45分钟前对答案进行了评论,你可以在评论部分看到它,这就是为什么我在这里放弃了替换答案……好的,别介意你的否决票……妈妈,幸运的最好的建议是不够的。评论可以随时删除。评论是对答案的补充,而不是相反。评论中的有用信息应整合到答案中。@LightnessRacesinOrbit,好的,我会努力跟进,妈妈,谢谢你的建议……亲爱的,你解决了我的问题,让我的一天更加阳光明媚!您的替换代码为我赢得了更多的时间,不幸的是,我不是php专家。谢谢。很抱歉,我正在努力完成这项工作,后台开发人员正在休假。无论如何
mysql_query($sql)     ---> $connection->query($sql)
mysql_affected_rows() ---> $result->affected_rows()
mysql_error()         ---> $connection->error