2013-12-13 27 views
0

有人可以幫助我。 這是代碼:錯誤1064,與csv,sql和php

public function csv_file() 
{ 

    $file = $_FILES['importeren']['tmp_name']; 
    $handle = fopen($file,"r"); 
    $filecsv = fgetcsv($handle,1000, ";"); 

    foreach($filecsv as $csv) 
    { 


     $password = rand(100000,999999); 
     //echo $password . '</br>' ; 

     $username = $csv; 
     $studentnummer = $csv; 
     $klas = $csv; 
     /* $voornaam = $csv[3]; 
     $tv = $csv[4]; 
     $achternaam = $csv[5];*/ 

    $query = "INSERT INTO user (fk_klas_ID,admin_ID,username,password,studentnummer) " 
          . "VALUES ('$klas','0','$username', sha1('$password'),$studentnummer');"; 
    $result = $this->db->query($query); 
    return $filecsv; 
} 
} 

我得到這個錯誤:

Error Number: 1064 

You have an error in your SQL syntax; 
check the manual that corresponds to your MySQL   
server version for the right syntax to use near '')' at line 1 

INSERT INTO user (fk_klas_ID,admin_ID,username,password,studentnummer) 
VALUES ('Richard','0','Richard', sha1('710565'),Richard'); 

Filename: C:\xampp\htdocs\codeigniter\system\database\DB_driver.php 

Line Number: 330 

我想,你可以給一個CSV文件,使內容進入數據庫。 我使用笨

Sorr我的英文不好

+1

的語法這​​裏突出查詢顯示你到底是什麼問題:引號第二個($ studentnummer)'Richard' –

+0

但這只是csv文件中的一個名稱 – user2870245

+1

其他問題:您不是從CSV中讀取的任何字符串值或使用準備好的語句,因此引號字符任何這些字符串值都會導致您的問題 –

回答

0

你錯過了一個$studentnummer .SO引號改變這樣

$query = "INSERT INTO user (fk_klas_ID,admin_ID,username,password,studentnummer) " 
          . "VALUES ('$klas','0','$username', sha1('$password'),'$studentnummer');";