簡體   English   中英

通過使用PHP導入.csv文件在表中存在日期時進行SQL Update查詢

[英]SQL Update query when there is an existing date in table by importing .csv files using PHP

我有一個代碼,可以用來創建.csv文件並將其插入MySQL。 現在,我想獲得的是如何通過導入.csv文件在表中已有日期的情況下更新數據。

我試圖用一個簡單的更新查詢來做到這一點,並且它工作正常……但是棘手的部分是從.csv文件中獲取日期,並將其與MySQL中的日期進行比較。 您能給我些提示嗎?

這是我的代碼:

$file = 'C:\Users\HP\Desktop\csvfiles\ADJTIME.csv';
$table = 'adjtime';


    ini_set('auto_detect_line_endings',TRUE);
$handle = fopen($file,'r');
// first row, structure
 if ( ($data = fgetcsv($handle) ) === FALSE ) {
//echo "Cannot read from csv $file";die();
}
$fields = array();
$field_count = 0;
for($i=0;$i<count($data); $i++) {
$f = strtolower(trim($data[$i]));
if ($f) {
// normalize the field name, strip to 20 chars if too long
$f = substr(preg_replace ('/[^0-9a-z]/', '_', $f), 0, 100);
$field_count++;


 if($f == 'date'){
     $fields[] = '`'.$f.'` DATE()';
} else {
$fields[] = '`'.$f.'` VARCHAR(500)';

}
}
} 


$sqlgetdate = ("SELECT DATE from $table where DATE = '5/3/2017' ");

echo $sqlgetdate;
$sqlupdate = ("UPDATE $table SET Fieldname = 'John' where DATE = '5/3/2017' ");
echo $sqlupdate;

mysql接受日期格式為'yyyy-mm-dd'因此您的查詢應為$sqlgetdate = ("SELECT DATE from $table where DATE = '2017-03-05' "); $sqlupdate = ("UPDATE $table SET Fieldname = 'John' where DATE = '2017-03-05' ");

在日期列上創建唯一鍵,並使用INSERT ... ON DUPLICATE KEY UPDATE語句。

文檔可以在這里找到

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM