【发布时间】:2015-10-07 14:33:01
【问题描述】:
在我的实际 csv 文件中有时间戳,但是在将其加载到 mysql 时,除了保持为空的时间戳之外,所有内容都在加载。我在 phpadmin(即 xampp)中使用 mysql,
使用的代码是:
<?php
// specify connection info
$connect = mysql_connect('localhost','root','');
if (!$connect)
{
die('Could not <span id="IL_AD1" class="IL_AD">
connect to</span> MySQL: ' . mysql_error());
}
$cid =mysql_select_db('test',$connect); //specify db name
define('CSV_PATH','C:\Users\vijay\Desktop');
$csv_file = CSV_PATH . "\probe.csv"; // Name of your CSV file
$csvfile = fopen($csv_file,"r");
$theData = fgets($csvfile);
$i = 0;
while (!feof($csvfile))
{
$csv_data[] = fgets($csvfile, 1024);
$csv_array = explode(",", $csv_data[$i]);
$insert_csv = array();
$insert_csv["app_name"] = $csv_array[0];
$insert_csv["user_id"] = $csv_array[1];
$insert_csv["timestamp"] = $csv_array[2];
$insert_csv["event"] = $csv_array[3];
$insert_csv["feature"] = $csv_array[4];
$insert_csv["action_name"] = $csv_array[5];
$insert_csv["qoe_rate"] = $csv_array[6];
$insert_csv["qoe_rate_description"] = $csv_array[7];
$query = "insert into csvdata2 (app_name,user_id,timestamp,event,feature,action_name,qoe_rate,qoe_rate_description) VALUES('$insert_csv[app_name]','$insert_csv[user_id]',$insert_csv[timestamp],'$insert_csv[event]','$insert_csv[feature]','$insert_csv[action_name]',$insert_csv[qoe_rate],'$insert_csv[qoe_rate_description]')";
$n=mysql_query($query);
echo $n;
$i++;
}
fclose($csvfile);
echo "file data successfully imported to database!!";
mysql_close($connect);
?>
如何包含时间戳代码,以便我可以在不干扰其他条目的情况下将确切的时间戳数据加载到表中......提前感谢
【问题讨论】:
-
你能打印 $query 生成的查询吗?
-
如果不知道 CSV 文件的内容或表结构,没有人可以回答这个问题。需要考虑的一些事项: 1) 使用fgetcsv 而不是 fgets。 2)不要使用变量扩展,容易出错。使用字符串连接。 3) 使用 mysqli extension 而不是弃用的 mysql 扩展。 4)做正确的input escaping。
标签: php mysql csv null timestamp