web-dev-qa-db-ja.com

php5 LAMPサーバーを使用してmysqlに接続できない

Lubuntu 14.04.5でLAMPサーバーをセットアップしようとしていますが、index.htmlを消去し、次のものに置き換えました:

/var/www/html/index.php

問題は、この前のすべてが<?phpタグが実行され、これによりクラッシュするようです。理由はわかりませんが、index.htmlが必要なためですか?

<?php
$dbhost = "localhost:3306";
$dbuser = "user1";
$dbpass = "pass1";
$connection = mysqli_connect($dbhost, $dbuser, $dbpass);
if(!$connection){
die("connection error " . mysqli_error());
}
echo "connected successfully";
mysqli_close($connection);
?>

だから私のPHPエラーログでは、未定義の関数mysqli_connect()を取得します。これを使用可能な機能にするにはどうすればよいですか?

Aptitude search php5-mysqlを実行すると、iが表示され、インストールされていることを意味します。また、mysqlnd以外のmysqlモジュールはありません。mysqlndはネイティブディレクトリとmysqlnd-msだけなので必要ないと思いますが、どうすれば解決できますか。

編集:mysqli拡張を追加する必要があるが、それを見つけるのに問題があると思う。

1
DR. Palson_PH.d

だから私はSudo apt-get install php5-mysqlその後、私はまだ同じウェブページを取得していたので、何も起こらないと思ったが、/var/log/php5/error.logエラーは、「undefined command mysqli_connect()」から「mysqli_errorには1つのパラメーターが必要」、「クラスmysqliのオブジェクトを文字列に変換できませんでした」、「unknown mysql server 'localhost:3306' 「。localhost:3306はlocahostに変更されました。コードを更新した後、すべてが正常に動作します。

<html>
   <head>
      <title>Connecting MySQL Server</title>
   </head>
   <body>
      <?php
         $dbhost = 'localhost';
         $dbuser = 'user1';
         $dbpass = 'pass1';
         $conn = mysqli_connect($dbhost, $dbuser, $dbpass);
         if(! $conn ) {
            die('Could not connect: ' . mysql_connect_error());
         }
         echo 'Connected successfully';
         mysqli_close($conn);
      ?>
   </body>
</html>
2
DR. Palson_PH.d

コードに使用する正しいコードの構文エラーがあります:

_<?php
    $dbhost = "localhost:3306";
    $dbuser = "user1";
    $dbpass = "pass1";
    $connection = mysqli_connect($dbhost, $dbuser, $dbpass);
    if(!$connection){
        die("connection error " . mysqli_error());
    }
    echo "connected successfully";
    mysqli_close($connection);
?>
_

エラー:

  • mysqli_erro() ==> mysqli_error()
  • dbpass ==> _$dbpass_
2
George Udosen

あなたはこれをやったと言います...

Sudo apt-get install php5-mysql

そして、あなたはこれを行うことについて決して言及しません。

Sudo service Apache2 restart

Php5-mysqlをインストールしたからといって、ApacheがPHPまたはPHP MySQLモジュールをロードしたという意味ではありません。

含まれているphpinfo.phpファイルを作成することにより、何が起こっているのかを確実に知ることができます...

<?php
print_r (phpinfo());
?>

次に、両方のPHPがロードされていることを確認します+ + PHP mysqlモジュールがロードされていることを確認します。

疑わしい場合は、必ず最初のデバッグ手順としてphpinfo.phpファイルの出力を確認してください。

多くの場合、この単純な出力があれば、複雑な問題を迅速に解決できます。

0
David Favor