简体   繁体   English

如何在PHP中将CSV数据插入到MySQL数据库中

[英]How to insert csv data into a mysql database in PHP

This might have been asked again but I can not find a solution to my "No database selected" issue. 可能会再次被问到,但是我找不到“未选择数据库”问题的解决方案。 Basically, I want to upload CSV contents to a the page and then insert them into MYSQL database. 基本上,我想将CSV内容上传到页面,然后将其插入MYSQL数据库。 The code below does well till displaying the contents to a web page. 在将内容显示到网页之前,下面的代码效果很好。 I can not get the details into a database. 我无法将详细信息输入数据库。 I'm getting "No database selected" ...Anyone lead me through 我收到“未选择数据库”的提示。

 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> <title>Upload page</title> <style type="text/css"> body { background: #E3F4FC; font: normal 14px/30px Helvetica, Arial, sans-serif; color: #2b2b2b; } a { color:#898989; font-size:14px; font-weight:bold; text-decoration:none; } a:hover { color:#CC0033; } h1 { font: bold 14px Helvetica, Arial, sans-serif; color: #CC0033; } h2 { font: bold 14px Helvetica, Arial, sans-serif; color: #898989; } #container { background: #CCC; margin: 100px auto; width: 945px; } #form {padding: 20px 150px;} #form input {margin-bottom: 20px;} </style> </head> <body> <div id="container"> <div id="form"> <?php $servername = "localhost"; $username = "root"; $password = ""; $dbname = "btccredentials"; // Create connection $conn = new mysqli($servername, $username, $password, $dbname); // Check connection if ($conn->connect_error) { die("Connection failed: " . $conn->connect_error); } //Upload File if (isset($_POST['submit'])) { if (is_uploaded_file($_FILES['filename']['tmp_name'])) { echo "<h1>" . "File ". $_FILES['filename']['name'] ." uploaded successfully." . "</h1>"; echo "<h2>Displaying contents:</h2>"; readfile($_FILES['filename']['tmp_name']); } //Import uploaded file to Database $handle = fopen($_FILES['filename']['tmp_name'], "r"); while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) { $import = "INSERT into btcdetails(mobilenumber,amount) values('$data[0]','$data[1]'),$dbname"; mysqli_query($conn,$import); } fclose($handle); print "Import done"; //view upload form }else { print "Upload new csv by browsing to file and clicking on Upload<br />\\n"; print "<form enctype='multipart/form-data' action='uploadcsv.php' method='post'>"; print "File name to import:<br />\\n"; print "<input size='50' type='file' name='filename'><br />\\n"; print "<input type='submit' name='submit' value='Upload'></form>"; } ?> </div> </div> </body> </html> 

Well the problem is you have mixed up two of the functions . 好了,问题是您混淆了两个功能。 One is deprecated and the other one is fine , though i would suggest you to use PDO http://php.net/manual/en/book.pdo.php for safe DB Operations. 尽管我建议您使用PDO http://php.net/manual/en/book.pdo.php进行安全的DB操作,但不推荐使用一个,而另一个很好。

Now your problem lies in the below code . 现在,您的问题出在以下代码中。

new mysqli($servername, $username, $password, $dbname); // Your connection 

mysql_query($import) or die(mysql_error()); // Your function 

Change it with the below code . 使用以下代码进行更改。

mysqli_query($conn,$import) or die(mysql_error());

Remember to use mysqli for all instances as you have used mysqli as your connectivity . 请记住,对于所有实例,都应使用mysqli ,因为已将mysqli用作连接性。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM