Нет подключения к базе данных без ошибок

У меня 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" не запускается для установки

Может кто-то помочь мне, пожалуйста?

1 ответ

Прежде всего использовать 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>
Другие вопросы по тегам