У меня Ubuntu 16.10 x86_64 x86_64. Я установил LAMP для программирования на PHP и для создания баз данных. В моей программе php я хочу подключиться к моей локальной базе данных для создания таблицы (в HTML) с данными любой строки таблицы.
Проблема в том, что когда я открываю файл php (localhost / file.php) через firefox, браузер ничего не заряжает. Если бы была ошибка при соединении с базой данных, она бы что-то напечатала в браузере.
Вот код:
<!DOCTYPE html>
<html>
<head><title> SQL & PHP </title></head>
<body>
<?php$db = mysql_connect("localhost", "root", "password")
or die ("Non riesco a creare la connessione");mysql_select_db("scuola")
or die ("Non trovo il DB");
$sql = "SELECT id_utente, nome_utente, password_utente, conta_pres FROM utenti WHERE conta_pres <> 0";
$ris = mysql_query($sql) or die ("Query fallita!");
echo "<TABLE><TR><TH>ID utente <TH> Nome utente <TH>Password<TH>Contatore visite</TR>";
while ($riga= mysql_fetch_array($ris))
{
echo ("<TR>");
echo "<TD>" . $riga["id_utente"];
echo "<TD>" . $riga["nome_utente"];
echo "<TD>" . $riga["password_utente"];
echo "<TD>" . $riga["conta_pres"];
}
mysql_close();
?>
</body>
</html>
Я проверил синтаксис (используя веб-сайт) кода, и это не проблема, даже если я скопировал его в книгу. Я прочитал, что mysql_connect устарел, поэтому я заменил его новым mysqli_connect, но ошибка все еще остается: белая страница. Я попытался поставить 2 эха, один до функции подключения и один после этого. Только первое эхо выводится на экран. Я попытался набрать в терминале sudo apt-get install php5-mysql, но есть ошибка:
Пакет «php5-mysql» не запущен для установки
Может кто-то помочь мне, пожалуйста?
Прежде всего использовать mysqli
вместо mysql
,
Я думаю, что нашел проблему. Когда вы звоните mysqli_select_db
, он ожидает 2 параметра, а вы указали только один. Даже если вы установили $db
подключение к базе данных, вам нужно указать, из какой базы данных вы хотите выбрать имя базы данных.
Так mysqli_select_db($db, "scuola")
должен сделать свое дело.
И внизу закройте соединение, указав, какое соединение закрывать. В вашем случае это: mysqli_close($db);
<!DOCTYPE html>
<html>
<head><title> SQL & PHP </title></head>
<body>
<?php$db = mysqli_connect("localhost", "root", "password")
or die ("Non riesco a creare la connessione");mysqli_select_db($db, "scuola") // see this line
or die ("Non trovo il DB");
$sql = "SELECT id_utente, nome_utente, password_utente, conta_pres FROM utenti WHERE conta_pres <> 0";
$ris = mysql_query($sql) or die ("Query fallita!");
echo "<TABLE><TR><TH>ID utente <TH> Nome utente <TH>Password<TH>Contatore visite</TR>";
while ($riga= mysql_fetch_array($ris))
{
echo ("<TR>");
echo "<TD>" . $riga["id_utente"];
echo "<TD>" . $riga["nome_utente"];
echo "<TD>" . $riga["password_utente"];
echo "<TD>" . $riga["conta_pres"];
}
mysqli_close($db); // see this line
?>
</body>
</html>
Других решений пока нет …