我已查看过一些相同问题的帖子,但仍然无法解决问题。我认为我的问题可能与其他问题不同。我认为这可能是文件权限问题或与文件或路径的位置有关的事情。也许这是MacOS沙盒问题?这个语句在MySQL Workbench中运行得很好。我在MacOS 10.12.6上运行MySQL 5.7.19。任何想法???
<?php
$host="localhost";
$port=3306;
$socket="/tmp/mysql.sock";
$user="user";
$password="password";
$dbname="Test_Company";
$con = new mysqli($host, $user, $password, $dbname, $port, $socket)
or die ('Could not connect to the database server' . mysqli_connect_error());
$sql = "LOAD DATA LOCAL INFILE '/Users/Test.User/Desktop/Data/Inventory Data.csv'
INTO TABLE inventory data
FIELDS TERMINATED BY ','
OPTIONALLY ENCLOSED BY '\"'
IGNORE 1 LINES " ;
if ($stmt = $con->prepare($sql)) {
$stmt->execute();
$stmt->bind_result($field1, $field2);
while ($stmt->fetch()) {
//printf("%s, %s\n", $field1, $field2);
}
$stmt->close();
}
$con->close();
?>
看起来它应该非常简单直接,但无法想出这个......
答案 0 :(得分:0)
Afaik,默认情况下未启用LOAD DATA INFILE
选项。您必须在运行LOAD DATA INFILE
查询之前启用它:
$con = new mysqli($host, $user, $password, $dbname, $port, $socket)
$con->options(MYSQLI_OPT_LOCAL_INFILE, TRUE);
//
// $stmt = $con->prepare($sql);
// etc...