Bob Bob - 1 year ago 74
MySQL Question

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. 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" "">
<html xmlns="">
<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 {
a:hover {

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;}

<div id="container">
<div id="form">


$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>";

//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";



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>";




Answer Source

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 for safe DB Operations.

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 .