我想要做的是在我的数据库中导入CSV文件。 CSV文件的第一列({1}}包含此格式mydate
的日期。我正在尝试从php中的表单插入文件。这是代码:
m.d.Y H:i:s
它导入除第一列之外的所有列中的数据。我无法理解我做错了什么。我已经看到很多if(isset($_POST["Import"])){
$filename=$_FILES["file"]["tmp_name"];
if($_FILES["file"]["size"] > 0){
$file = fopen($filename, "r");
while (($getData = fgetcsv($file, 10000, ",")) !== FALSE){
$conn=getdb();
$sql = "INSERT into pay (Mydata,ID,Transaction,ReceiptNo,ServiceID,)
values (STR_TO_DATE(Mydata, '%m.%d.%Y %H:%i:%s'),'".$getData[1]."','".$getData[2]."','".$getData[3]."','".$getData[4]."')";
和STR_TO_DATE
的例子,我认为我写它的方式是正确的。但仍然行不通。
答案 0 :(得分:0)
你可以这样做
CronJob
答案 1 :(得分:0)
我使用LOAD DATA INFILE解决了这个问题。
以下是我使用的代码:
if(isset($_POST["Import"])){
$filename=str_replace("\\", "/", $_FILES["file"]["tmp_name"]);
if($_FILES["file"]["size"] > 0){
$conn=getdb();
$sql = "LOAD DATA LOCAL INFILE '".$filename."'
INTO TABLE pay
FIELDS OPTIONALLY ENCLOSED BY '\"' TERMINATED BY ','
LINES TERMINATED BY '\\n'
(@Mydata,ID,Transaction,ReceiptNo,ServiceID)
SET Mydata = STR_TO_DATE( @Mydata, '%m.%d.%Y %H:%i:%s')";
}
}