php - 加载数据本地 Infile 不将数据添加到数据库

标签 php mysql load-data-infile

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

这是处理页面,应该将文件输入并处理到数据库中。

// 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)

最佳答案

在这种情况下,我的问题似乎出在 LINES TERMINATED 行。我改成了这个,问题就解决了:

LINES TERMINATED BY '\r'

关于php - 加载数据本地 Infile 不将数据添加到数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28927212/

相关文章:

mysql - 加载数据文件 : Invalid ut8mb4 character string

mysql - 如何在mysql中使用STR_TO_DATE创建 View ?

sql - LOAD DATA LOCAL INFILE 读取问题

php - PHP 驱动程序中的 AMQP 清除

php - 如何在 MySQL/PHP 中插入和读取时间/日期?

带有 mySQL 命令参数的 C# Foreach 循环

php - 手动 Drupal 节点插入

php - 想要使用两个具有多个值的条件进行更新

javascript - 单击按钮后,有些 Javascript 警报会显示,有些则不会。为什么?

php - 在 Woocommerce 中的每个项目名称旁边显示购物车中的产品自定义字段