2017-04-19 88 views
0

我的Ubuntu 16.10 x86_64的x86_64的任何數據庫連接。我安裝了LAMP以使用PHP進行編程並創建數據庫。在我的php程序中,我想連接到我的本地數據庫,用表格的任何一行的數據創建一個表(使用HTML)。 問題是,當我通過Firefox打開php文件(localhost/file.php)時,瀏覽器不收取任何費用。如果在與數據庫連接期間出錯,它會在瀏覽器中打印一些內容。 下面的代碼:沒有錯誤

<!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> 

我檢查語法(使用網頁)的代碼和thare都不是問題,甚至因爲我複製這一個由一本書。我讀到mysql_connect已被棄用,所以我用新的mysqli_connect替換了它,但錯誤仍然存​​在:白頁。我試圖把2個回聲,一個在連接功能之前,一個在之後。只有第一個回顯被打印在屏幕上。我試圖在終端sudo來輸入apt-get安裝PHP5-MySQL,但有一個錯誤: 的「PHP5-MySQL的」包沒有運行安裝

有人可以幫助我,好嗎?

+3

不要使用mysql_ *函數。從PHP 5.5.0開始不推薦使用mysql_ *函數,並從PHP 7.0.0開始刪除。切換您的代碼以使用[PDO](https://secure.php.net/manual/en/pdo.prepared-statements.php)或[mysqli](http://php.net/manual/en/mysqli。改爲quickstart.prepared-statements.php)。 – aynber

+0

如果你得到一個白色的直頁,然後檢查你的服務器錯誤日誌的原因。 – aynber

+0

我認爲mysql_connect已經過去5.6棄用了。所以它可能甚至不是在php-7 –

回答

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>