2016-06-24 9 views
1

みなさんこんにちは、私はかなり新しいPHPです。本当に助けが必要です。 PHPとHTMLフォームを使用してmysqlデータベースにCSVファイルをアップロードしようとしていますが、次のエラーが表示されます。ライン23上のphpとmysqlを使ってmysqlにcsvファイルをアップロードしてみてください。

警告:のfopen():ファイル名がCで空にすることはできません:\ XAMPP \ htdocsにライン24上のインポートのCSVの\ importcsv.php \

警告:fgetcsv()は、パラメータ1はリソースであることを期待し、 C:\ xampp \ htdocs \ import csv \ importcsv.php 26行目

警告:fclose()は、パラメータ1がリソースであり、ブール値がC:\ xampp \ htであると想定しています。ドキュメントは\成功し、ここで

をインポートライン30上の輸入のcsv \のimportcsv.phpは私のコードは

 <?php 
     ini_set('display_errors', 1); 
     error_reporting(E_ALL); 
     $db_host = 'localhost'; 
     $db_user = 'root'; 
     $db_pwd = ''; 

     $db = 'mydb'; 
     $table = 'user'; 

     $conn = mysqli_connect($db_host, $db_user, $db_pwd) or die("Cant connect to database"); 


     if(!mysqli_select_db($conn,$db)) 
     die("Cant select to database"); 

     if(isset($_POST['submit'])){ 
     $fname = $_FILES['sel_file']['name']; 
     echo 'upload file name: '.$fname.' '; 
     $chk_ext = explode(".", $fname); 

     if(strtolower(end($chk_ext)) == "csv"){ 
      $filename = $_FILES['sel_file']['temp_name']; 
      $handle = fopen($filename, "r"); 

      while(($data = fgetcsv($handle, 1000, ",")) != FALSE){ 
      $sql = "INSERT into user(name,email,phone) values('$data[0]', '$data[1]', '$data[2]')"; 
      mysql_query($sql) or die(mysql_error()); 
      } 
      fclose($handle); 
      echo "successfully imported"; 
      } 
      else{ 
       echo "Invalid file"; 
      } 
     } 

     ?> 

     <h1>Import csv file</h1> 
     <form action='<?php echo $_SERVER["PHP_SELF"];?>' method='post' enctype="multipart/form-data"> 
     Import File : <input type='file' name='sel_file' size='20'> 
     <input type='submit' name='submit' value='submit'> 
     </form> 

で誰もが、私はあなたのコード内のいくつかの行を更新した

+0

「temp_name」ではなく「tmp_name」である必要があります。 – Faradox

+0

高齢者、それは働いていました。しかし今私は別の問題を抱えています:警告:mysqli_error()は、正確に1つのパラメータ、すなわち0が必要です。私のコードは次のとおりです:mysqli_query($ conn、$ sql)またはdie(mysqli_error()); – Vuyisile

+0

あなたのケースでは、mysqli_error($ conn) ' – Faradox

答えて

0

を私を助けてください。

<?php 
ini_set('display_errors', 1); 
error_reporting(E_ALL); 
$db_host = 'localhost'; 
$db_user = 'root'; 
$db_pwd = ''; 

$db = 'mydb'; 
$table = 'user'; 

$conn = mysqli_connect($db_host, $db_user, $db_pwd, $db) or die("Cant connect to database"); 

if (mysqli_connect_errno()) { 
    printf("Connect failed: %s\n", mysqli_connect_error()); 
    exit(); 
} 

if (isset($_POST['submit'])) { 
    $fname = $_FILES['sel_file']['name']; 
    echo 'upload file name: ' . $fname . ' '; 
    $chk_ext = explode(".", $fname); 

    if (strtolower(end($chk_ext)) == "csv") { 
     $filename = $_FILES['sel_file']['tmp_name']; 
     $handle = fopen($filename, "r"); 

     while (($data = fgetcsv($handle, 1000, ",")) != FALSE) { 
      $sql = "INSERT into user(name,email,phone) values('".$data[0]."', '".$data[1]."', '".$data[2]."')"; 
      mysqli_query($conn, $sql) or die(mysqli_error($conn)); 
     } 
     fclose($handle); 
     echo "successfully imported"; 
    } else { 
     echo "Invalid file"; 
    } 
} 
?> 

<h1>Import csv file</h1> 
<form action='<?php echo $_SERVER["PHP_SELF"]; ?>' method='post' enctype="multipart/form-data"> 
    Import File : <input type='file' name='sel_file' size='20'> 
    <input type='submit' name='submit' value='submit'> 
</form> 
+0

私を助けるために時間を割いていただきありがとうございます。私はちょうど私を送った調整コードを実行しようとしましたが、これは私が今取得するエラーです:キー 'PRIMARY'の重複したエントリ 'xxxxxx'は、 – Vuyisile

関連する問題