使用 php5 LAMP 服务器连接 mysql 时出现问题

使用 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-ms 我该如何解决这个问题?

编辑:我想我需要添加 mysqli 扩展,但在定位它时遇到了麻烦。

答案1

您的代码有语法错误,正确的代码如下:

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

所以我所做的是sudo apt-get install php5-mysql然后我仍然得到相同的网页所以我认为什么都没有发生,但在检查之后/var/log/php5/error.log发现错误从“未定义的命令 mysqli_connect()”变为一些与代码相关的错误,如“mysqli_error 需要 1 个参数和“类 mysqli 的对象无法转换为字符串”和“未知的 mysql 服务器‘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>

答案3

你说你做过这个……

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 文件输出作为第一步调试。

很多时候,有了这个简单的输出,复杂的问题就能快速解决。

相关内容