加载数据本地Infile不向db添加数据

时间:2015-03-08 13:54:23

标签: php mysql load-data-infile

由于某种原因,此功能未将数据加载到我的数据库中。我正在通过MAMP进行这些测试。

这是处理页面,应该将文件输入和处理带入DB。

// Connect to database
$connect = mysql_connect('localhost','nopassword','nopassword');
mysql_select_db('gwt_extract', $connect);

if(!($connect))
{
    die ("Unable to connect to database. Program aborted.");
}

$company_id = $_POST['select_company'];

// Upload files
$target_dir = "uploads/";
$target_file = $target_dir . basename($_FILES["fileToUpload"]["name"]);
$uploadOk = 1;
$imageFileType = pathinfo($target_file,PATHINFO_EXTENSION);

// Allow certain file formats
if($imageFileType != "csv") {
    echo "Sorry, only CSV files are allowed.";
    $uploadOk = 0;
}

// Check if $uploadOk is set to 0 by an error
if ($uploadOk == 0) {
    echo "Sorry, your file was not uploaded.";
// if everything is ok, try to upload file
}
else {
    if (move_uploaded_file($_FILES["fileToUpload"]["tmp_name"], $target_file)) {
        echo "The file ". basename( $_FILES["fileToUpload"]["name"]). " has been uploaded.";
    } else {
        echo "Sorry, there was an error uploading your file.";
    }
}

$insert = "LOAD DATA LOCAL INFILE 'uploads/filename.csv'
INTO TABLE raw_data
FIELDS TERMINATED BY ','
LINES TERMINATED BY '\n'
IGNORE 1 ROWS 
(id,date,query,impression,impression_change,clicks,clicks_change,ctr,ctr_change,avg_position,avg_position_change,@company_id)
SET company_id = 1";

mysql_query($insert) or die(mysql_error());

我的表格结构如下:

id  int(11)
date    date
query   varchar(100)
impression  int(6)
impression_change   varchar(5)
clicks  int(6)
clicks_change   varchar(5)
ctr varchar(4)
ctr_change  varchar(5)
avg_position    varchar(5)
avg_position_change varchar(5)
company_id int(11)

1 个答案:

答案 0 :(得分:0)

在这种情况下,看起来我的问题出现在LINES TERMINATED行中。我改为此问题已得到解决:

LINES TERMINATED BY '\r'