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 表单将 excel (.csv) 导入 MySQL

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(自动增量和主要),名字,姓氏,电子邮件。我创建了一个 csv 文件并将其命名为upload.csv(无论您如何命名),其中有数百个个人数据,分为 3 列,例如First NameLast NameEmail Address示例:

willie walker willie@example.com
david cotter david@sometest.com
John 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>
于 2012-10-30T17:46:20.713 回答