2016-12-08 56 views
1

我試圖將CSV文件插入MySql,但我得到一個錯誤。CSV文件上傳到MySQL數據庫(錯誤)

警告:mysql_real_escape_string()預計參數1爲字符串,

我的數據庫表:

:s_no :name :id : 
:1  :Lim  :678 : 
:2  :Mary :623 : 
:3  :Mimi :4124 : 

爲AUTO_INCREMENT,我想,而不是名稱和ID只要。

<?php 
    $connect = mysql_connect("localhost","root","","skpj"); 

    if(isset($_POST["submit"])) 
    { 
    if($_FILES['file']['name']) 
    { 
     $filename = explode('.',$_FILES['file']['name']); 
     if ($filename[1] == 'csv') 
     { 
     $handle = fopen($_FILES['file']['tmp_name'], "r"); 
     while ($data = fgetcsv($handle)) 
     { 
      $item1 = mysql_real_escape_string($connect, $data[0]); 
      $item2 = mysql_real_escape_string($connect, $data[1]); 
      $sql="INSERT into student(s_no, name, id) value ('','$item1','$item2')"; 
      mysql_query($connect, $sql); 
     } 
     fclose($handle); 

     print "Done"; 
     } 
    } 
    } 

?> 
<html> 
    <head></head> 
    <body> 
    <form method="post" enctype="multipart/form-data"> 
     <div> 
     <p>Upload CSV: <input type="file" name="file" /></p> 
     <p><input type="submit" name="submit" value="Import" /></p> 
     </div> 
    </form> 
    </body> 
</html> 
+0

缺少表單動作 –

+0

我沒有得到這一行'*「的數字」是AUTO_INCREMENT,所以我想改爲名稱和ID只* *。請解釋。 –

+0

「s_no」是AUTO_INCREMENT,所以我想只改名稱和ID。 在數據庫中字段「s_no」是自動生成的。我只需要在name和id字段中。 – Ameer

回答

0

嘗試這種

mysql_real_escape_string("string") 

裝置

mysql_real_escape_string($data[0]); 
+0

okey ..我做到了。沒有錯誤。但數據仍然沒有。 有什麼想法我可以做什麼? – Ameer

0

如果您正在使用的mysqli然後

mysqli_real_escape_string($connect,$data[0]); 

如果你使用MySQL的

mysql_real_escape_string($data[0]); 
+0

okey ..我做到了。沒有錯誤。但數據仍然沒有。 有什麼想法我可以做什麼? – Ameer