【问题标题】:csv to mysql using php no data insertedcsv到mysql使用php没有插入数据
【发布时间】:2012-10-17 10:03:36
【问题描述】:

我正在尝试使用 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>

我使用了Import an excel (.csv) into MySQL using PHP code and an HTML form的代码

【问题讨论】:

    标签: php mysql insert


    【解决方案1】:

    您需要调用mysql_query 执行查询。现在,您只需将查询表述为字符串 ($sql),无需进一步操作。只需将此字符串作为参数传递,例如:

    $result = mysql_query($sql);
    

    您可能还想处理发生的任何错误。例如(来自 PHP 手册):

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

    详情请见PHP manual on mysql_query

    【讨论】:

      【解决方案2】:

      对于像我这样正在寻求解决方案的其他人的帮助,请阅读并关注此内容,

      我创建了一个名为 csv 的数据库和一个名为 test 的表,其中 4 个字段是 id (自动递增和主要)、first_name、last_name、email。我创建了一个 csv 文件并将其命名为 upload.csv(无论您如何命名),其中有 3 列中的数百个个人数据,例如 First Name、姓氏和电子邮件地址示例:

      willie    walker    willie@example.com
      大卫·科特    david@sometest.com
      约翰    Painer    john@domain.com
      ........     ........   ........
      ........     ........   ........

      现在,创建一个新的 php 文件 import_csv_file.php(不管你如何命名)并粘贴下面的代码,保存并在你的网络服务器下运行。上传我们创建的 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>
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-12-27
        • 1970-01-01
        • 2012-06-11
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多