2017-04-19 15 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つのエコーを入れようとしました、1つは接続関数の前に、もう1つはエコーします。最初のエコーだけが画面に表示されます。私は、apt-getののphp5-mysqlのインストールターミナルにsudoを入力しようとしたが、エラーがあります: 「のphp5-mysqlの」パケットが

をインストールするために実行されていない誰かが、私を助けてくださいことはできますか?

+3

mysql_ *関数を使用しないでください。 mysql_ *関数はPHP 5.5.0以降では廃止され、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

まず、mysqlの代わりにmysqliを使用してください。

私はこの問題を発見したと思います。 mysqli_select_dbに電話すると、2つのパラメータが必要で、指定したパラメータは1つのみです。 $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> 
関連する問題