2014-12-31 123 views
-1

我將記錄從CSV文件插入到MySQL表中;如果任何記錄已經存在,則更新該記錄並插入其他記錄,並且如果沒有記錄匹配,則插入所有記錄。將CSV文件數據導入到MySQL表中

這裏是我的代碼

<?php 
    $connect = mysql_connect('localhost','root','root'); 
    if (!$connect) { 
    die('Could not connect to MySQL: ' . mysql_error()); 
    } 
    $cid =mysql_select_db('bizin490_devcredit',$connect); 
    define('CSV_PATH', '/home/ubc/Documents/'); 
    $csv_file = CSV_PATH . "test.csv"; 
    $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['name'] = $csv_array[0]; 
    $insert_csv['email'] = $csv_array[1]; 

    $query = mysql_query("select name from test where name='" . $insert_csv['name'] . "'"); 
    $count = mysql_num_rows($query); 

    if ($count == 0) { 
     $query = "INSERT INTO test(name,email)VALUES('" . $insert_csv['name'] . "','" . $insert_csv['email'] . "')"; 

     $n = mysql_query($query, $connect); 

     } else { 

     $sql = "update test set email='".$insert_csv['email']."'"; 
     //echo "<pre>";print_r($sql); 
     $qu = mysql_query($sql); 
     echo "<pre>";print_r($_POST); 
     } 
    $i++; 
    //die; 
    } 
    fclose($csvfile); 
    echo "File data successfully imported to database!!"; 
    mysql_close($connect); 
?> 
+1

您有什麼問題??? –

+0

我的問題是,當它更新記錄時,它會使數據庫中更新的文件保持不變 – user1990386

+0

$ insert_csv ['email']可能爲空 –

回答

0

喜歡的東西:

LOAD DATA INFILE '/home/ubc/Documents/test.csv' 
REPLACE 
INTO TABLE `test` 
(name, email)