2

phpを使用してcsvの連絡先データをmysqlデータベースphbookにアップロードしようとしていますが、phpmyadminを確認するか、データベースのデータを印刷すると、何も表示されないか、テーブルが空であると言います。

私が使用したコードは次のとおりです。

    <?php
    /* conenction to DB */

    $con = mysql_connect("localhost","root","");
    if (!$con)
      {
      die('Could not connect: ' . mysql_error());
      }

    mysql_select_db("phbook", $con);

    /* connection ends*/

    if ( isset( $_FILES['userfile'] ) )
    {
      $csv_file = $_FILES['userfile']['tmp_name'];

      if ( ! is_file( $csv_file ) )
        exit('File not found.');

      $sql = '';

      if (($handle = fopen( $csv_file, "r")) !== FALSE)
      {
          while (($data = fgetcsv($handle, 1000, ",")) !== FALSE)
          {
              $sql .= "INSERT INTO `contact` SET
                `fname` = '$data[0]',
                `lname` = '$data[1]',
                `phone` = '$data[2]',
                `mob` = '$data[3]',
                `email` = '$data[4]';
              ";
          }
          fclose($handle);
      }

      // Insert into database

      //exit( $sql );
      exit( "Complete!" );
    }
    mysql_close($con);
    ?>
    <!DOCTYPE html>
    <html>
    <head>
    <title>CSV to MySQL Via PHP</title>
    </head>
    <body>
    <form enctype="multipart/form-data" method="POST">
      <input name="userfile" type="file">
      <input type="submit" value="Upload">
    </form>
    </body>
    </html>

PHPコードとHTMLフォームを使用してMySQLにExcel(.csv)をインポートするコードを使用しました

4

2 に答える 2

3

mysql_queryクエリを実行するには、呼び出す必要があります。現時点では、クエリを文字列 ( $sql) として定式化するだけで、それ以上は何もしません。次のように、この文字列をパラメーターとして渡すだけです。

$result = mysql_query($sql);

発生したエラーを処理することもできます。たとえば(PHPマニュアルから):

if (!$result) {
    die('Invalid query: ' . mysql_error());
}

詳細については、mysql_query に関する PHP マニュアルを参照してください。

于 2012-10-17T10:05:36.737 に答える
2

解決策を探している私のような他の人の助けとして、これを読んでフォローしてください。

csvという名前のデータベースとtestという名前のテーブルを作成しました。ここで、4 つのフィールドはidです(自動インクリメントおよびプライマリ)、first_name、last_name、email . csv ファイルを作成し、upload.csvという名前を付けました(名前は何でもかまいません) 。First NameLast NameEmail Addressのような 3 つの列に何百もの個人のデータがあります。例:

ウィリー・ウォーカー willie@example.comデビッド・
コッター david@sometest.com
ジョン・パイナー john@domain.com
....... .......... .......... …………………………………………
_

次に、新しい php ファイル import_csv_file.php を作成し (名前は何でも構いません)、以下のコードを貼り付けて保存し、Web サーバーで実行します。作成した csv ファイルをアップロードして確認します。

    <?php

    $con = mysql_connect("localhost","root","") or die (mysql_error());

    mysql_select_db('csv', $con);

        if(isset($_POST['submit']))
        {
            $file = $_FILES['file']['tmp_name'];
            $handle = fopen($file,"r");
            while(($fileop = fgetcsv($handle,1000,",")) !==false)
            {

                $f = $fileop[0];
                $l = $fileop[1];
                $e = $fileop[2];
                $sql= mysql_query("INSERT INTO test (first_name,last_name,email) VALUES ('$f','$l','$e')");
            }
            if($sql)
            {
                echo "data uploaded successfully";
            }
        }

    ?>

    <body>
    <form action="" enctype="multipart/form-data" method="post">
      <input type="file" name="file" />
      <br />
      <input type="submit" value="Submit" name="submit"/>
    </form>
    </body>
    </html>
于 2012-10-30T17:46:20.713 に答える