我上周搜索过这方面的内容,但我找不到任何工作,我查看了文档,文档中也没有任何内容。
我有一个CSV(下面的链接下载),我需要使用MySQLi上传几列到MySQL。 CSV来自我们用于投放广告的平台,客户名称已更改,但数据是两天内的所有真实数据。
以下是我上传的代码(有3种不同版本的SQL命令,我尝试了大约30种不同版本):
<?
(MY USER INFORMATION FOR MY MYSQL SERVER)
$ad_results = mysqli_connect($dbHost, $dbUser, $dbPass, $dbName);
ignore_user_abort(true);
set_time_limit(9999);
$sql1 = "LOAD DATA INFILE 'CSV_FILE_FOR_STACKOVERFLOW.csv' INTO TABLE ad_info
FIELDS TERMINATED BY ',' LINES TERMINATED BY '\n'
(@col1,@col2,@col6,@col12,@col13,@col14) set client=@col2,impressions_delivered=@col12,date=@col1,impressions_booked=@col13,clicks=@col14,creative=@col6";
$sql2 = "LOAD XML INFILE '558385_20130815-153744.xml' INTO TABLE item ROWS IDENTIFIED BY '<row>'";
$sql3 = "LOAD DATA INFILE 'CSV_FILE_FOR_STACKOVERFLOW.csv' INTO TABLE ad_info
FIELDS TERMINATED BY ','
LINES TERMINATED BY '\n'
IGNORE 1 LINES
(@client, @name)
set
client = @client,
impressions_delivered = @impressions_delivered,
company_id = '1000001'";
mysqli_query($ad_results, $sql3);`
mysqli_close($ad_results)
?>
使用CSV中的所有列设置MySQL数据库,以防万一不能只执行某些列,我愿意上传所有数据。有趣的是,每天凌晨1点有30-40个CSV文件将通过这段代码,我有代码选择下载文件夹中的所有CSV,只需要代码将它们插入MySQL。谢谢! (请回答真实的答案,我已到处搜索,我找不到任何工作,它总是给我一个错误,或者只是没有将行插入MySQL,我得到的最接近的是解析CSV并使用
mysqli_query($ad_results, "INSERT INTO ad_info (...)VALUES(...)");
这个文件存在于服务器上,而cron作业每晚都会运行PHP脚本,它忽略了用户中止,运行时间为9999秒。 (以确保它获得所有数据)。在此先感谢您的帮助!
答案 0 :(得分:0)
我在您的代码中找不到mysqli_error($ad_results)
来电。您应该将mysqli_query()
的响应保存在资源变量$mysqli
中,然后显示可能的MySQL错误,如:
$mysqli=mysqli_query($ad_results, $sql3);
if (!$mysqli) echo mysqli_error($ad_results);
也许毕竟有消息等着你? ; - )