2016-12-08 4 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, поэтому я хотел вместо этого указать имя и идентификатор только * ». Пожалуйста, объясни. –

+0

«s_no» - AUTO_INCREMENT, поэтому я хотел вместо этого указать имя и идентификатор. в базе данных поле "s_no" автоматически генерируется. мне просто нужно только в поле имени и имени. – Ameer

ответ

0

попробовать это

mysql_real_escape_string("string") 

означает

mysql_real_escape_string($data[0]); 
+0

okey .. я сделал. Нет ошибки. но данные по-прежнему не делали этого. есть идеи, что я могу сделать ?? – Ameer

1

соединение является вторым параметром.

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

запомнить Также устаревшей функции

http://php.net/manual/en/function.mysql-real-escape-string.php

+0

okey .. я сделал. Нет ошибки. но данные по-прежнему не делали этого. есть идеи, что я могу сделать ?? – Ameer

0

если вы используете Mysqli затем

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

, если вы будете использовать MySQL

mysql_real_escape_string($data[0]); 
+0

okey .. я сделал это. Нет ошибки. но данные по-прежнему не делали этого. есть идеи, что я могу сделать ?? – Ameer

Смежные вопросы