安装 LAMP-PHP 无法连接 MySQL-为什么?

安装 LAMP-PHP 无法连接 MySQL-为什么?

我正在关注这个非常简单的 LAMP 教程
http://ubuntuserverguide.com/2014/06/how-to-install-lamp-in-ubuntu-server-14-04-lts.html

  • 安装 Apache
  • 安装 MySQL
  • 安装 PHP

问题是:

  • 当我检查浏览器 localhost/phpmysql.php 时
  • 我只看到空白页
  • 如果 php 已经运行,我应该看到 CONGRATULATIONS 或 ERROR 消息。
 <?php
    $con = mysql_connect("localhost","root","passwordxxxxxx");
    if (!$con)
    {
     die('Could not connect: ' . mysql_error());
    }
    else
    {
     echo "Congrats! connection established successfully";
    }
    mysql_close($con);
  ?>

这个 PHP 代码可能有错误吗?例如:如果 PHPMYSQL.PHP 文件中设置的密码错误,我应该会收到错误消息,因为我有 ECHO。

为什么我收到的是空白回复?有什么解决方法吗?谢谢

答案1

您可以通过搜索找到问题的解决方案这里根据日志中的错误。

您缺少 php 的 Mysqli 类。我猜安装 MyPHPAdmin(更确切地说是 PHPMyAdmin)会附带安装 mysqli。

答案2

好的,在我安装 MyPHPAdmin 之后,它突然开始运行 PHP 文件,我一直返回:连接成功

所以我感谢您的时间和您的想法!

答案3

我知道你只是想连接,可能才刚刚开始,但请停止使用mysql_connect;我甚至不知道它现在仍然受支持。开始使用 PDO 的快速参考点是http://php.net/manual/en/book.pdo.php

我用于 PDO 连接的简单示例

我有一个文件。我们将其命名为 connection.php

<?php

    class DDB extends pdo{


    public $sitedb = '';
    public $siteconfig;
    public $sitesettings = array(
        'host'      => "localhost",
        'database'  => "yourdb",
        'username'  => "youruser",
        'password'  => "yourpass",
    );

    public function __construct(){

        $this->db = new PDO(
            "mysql:host={$this->sitesettings['host']};" .
            "dbname={$this->sitesettings['database']};" .
            "charset=utf8",
            "{$this->sitesettings['username']}",
            "{$this->sitesettings['password']}"
        );

        $this->db->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_ASSOC);
    }

    }

现在你也可以创建一个新类。我们将其命名为 accounts.php,因此在 accounts.php 中

<?php

    require_once("connection.php");

class Accounts() {
         public $db;
         public function __construct() {
               $this->db = new DDB();
         }

         public function GetAccountNames() {
                $query = <<<SQL
                SELECT username
                FROM accounts
SQL;
         $resource = $this->db->db->prepare( $query );
         $resource->execute();
         foreach($resource as $row) {
         echo $row['username'];
         }
     }

现在假设你有 users.php

<?php $accounts = new Accounts();
           $accounts->GetAccountNames();
       ?>

user.php 页面现在将循环遍历您帐户数据库的所有结果。我知道这不算多,但希望这是一个很好的起点,让您远离已弃用的函数。

相关内容