2016-06-22 6 views
0

Возможно, это снова было задано, но я не могу найти решение для моей проблемы «Нет базы данных». В принципе, я хочу загрузить содержимое CSV на страницу, а затем вставить их в базу данных MYSQL. Код ниже хорошо подходит для отображения содержимого на веб-странице. Я не могу получить данные в базе данных. Я не получаю «Нет базы данных, выбранный» ... Кто ведет меня черезКак вставить данные csv в базу данных mysql в PHP

<!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 { 
 
\t background: #E3F4FC; 
 
\t font: normal 14px/30px Helvetica, Arial, sans-serif; 
 
\t color: #2b2b2b; 
 
} 
 
a { 
 
\t color:#898989; 
 
\t font-size:14px; 
 
\t font-weight:bold; 
 
\t text-decoration:none; 
 
} 
 
a:hover { 
 
\t color:#CC0033; 
 
} 
 

 
h1 { 
 
\t font: bold 14px Helvetica, Arial, sans-serif; 
 
\t color: #CC0033; 
 
} 
 
h2 { 
 
\t font: bold 14px Helvetica, Arial, sans-serif; 
 
\t color: #898989; 
 
} 
 
#container { 
 
\t background: #CCC; 
 
\t margin: 100px auto; 
 
\t width: 945px; 
 
} 
 
#form \t \t \t {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'])) { 
 
\t if (is_uploaded_file($_FILES['filename']['tmp_name'])) { 
 
\t \t echo "<h1>" . "File ". $_FILES['filename']['name'] ." uploaded successfully." . "</h1>"; 
 
\t \t echo "<h2>Displaying contents:</h2>"; 
 
\t \t readfile($_FILES['filename']['tmp_name']); 
 
\t } 
 

 
\t //Import uploaded file to Database 
 
\t $handle = fopen($_FILES['filename']['tmp_name'], "r"); 
 

 
\t while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) { 
 
\t \t $import = "INSERT into btcdetails(mobilenumber,amount) values('$data[0]','$data[1]'),$dbname"; 
 
     
 
\t \t mysqli_query($conn,$import); 
 
\t } 
 

 
\t fclose($handle); 
 

 
\t print "Import done"; 
 

 
\t //view upload form 
 
}else { 
 

 
\t print "Upload new csv by browsing to file and clicking on Upload<br />\n"; 
 

 
\t print "<form enctype='multipart/form-data' action='uploadcsv.php' method='post'>"; 
 

 
\t print "File name to import:<br />\n"; 
 

 
\t print "<input size='50' type='file' name='filename'><br />\n"; 
 

 
\t print "<input type='submit' name='submit' value='Upload'></form>"; 
 

 
} 
 

 
?> 
 

 
</div> 
 
</div> 
 
</body> 
 
</html>

+1

Вы не можете смешивать и сопоставлять функции 'mysql_ *' и 'mysqli_ *'. –

ответ

0

Ну проблема в том, вы перепутали две функции. Один из них устарел, а другой - в порядке, хотя я бы предложил вам использовать PDO http://php.net/manual/en/book.pdo.php для безопасного функционирования БД.

Теперь ваша проблема кроется в коде ниже.

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

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

Изменить его нижеследующим кодом.

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

Не забывайте использовать mysqli для всех случаев, как вы использовали mysqli в качестве соединения.

+0

Жаль, что я пытался изменить код – Bob

+0

Ошибка? Если код подключения к БД не выдал никакой ошибки, то я думаю, что вам что-то не хватает –

+0

Теперь хорошо @Megan. спасибо – Bob

Смежные вопросы