我正在尝试使用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
答案 0 :(得分:3)
您需要调用mysql_query
来执行查询。现在,您只能将查询表示为字符串($sql
),并且不做任何进一步的操作。只需将此字符串作为参数传递,例如:
$result = mysql_query($sql);
您可能还想处理发生的任何错误。例如(来自PHP手册):
if (!$result) {
die('Invalid query: ' . mysql_error());
}
有关详细信息,请参阅PHP manual on mysql_query。
答案 1 :(得分:3)
对于像我这样寻求解决方案的其他人的帮助,请阅读并按照,
我创建了一个名为 csv 的数据库,以及名为 test 的表,其中4个字段为 id < em>(自动增量和主要) ,first_name,last_name,电子邮件。我创建了一个csv文件并将其命名为 upload.csv (无论你的名字是什么),其中3列中有数百个人的数据,如名字,< strong>姓氏和电子邮件地址示例:
willie walker willie@example.com
david cotter david@sometest.com
John Painer john@domain.com
....... .......... ......................
....... .......... ......................
现在,创建一个新的php文件import_csv_file.php(无论你怎么命名)并粘贴下面的代码,保存并在你的web服务器下运行..上传我们创建的csv文件,看看.. IT WORKS
<?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>