php - 连接到数据库时出现问题 (php)

标签 php mysql database-connection

我正在处理一个用户数据库并对其进行设置,以便注册表中的下拉菜单从数据库中的表中获取值。问题是,当我测试它时,下拉菜单是空的。当然,我做的第一件事就是去检查我的连接。为了连接到数据库,我有一个名为 BaseDAO.php 的文件,其中包含以下内容:

<?php

    class BaseDAO {

        const SQL_HOST = "localhost";
        const SQL_USER = "user6538";
        const SQL_PW = "sdWf234Fg";
        const SQL_DB = "userDB";

        protected $con = null;

        function connect() {
            $this->con = mysql_connect(self::SQL_HOST, self::SQL_USER, self::SQL_PW);
            if(!$this->con) {die('Could not connect to MySQL host: ' . self::SQL_HOST . ' Error: ' . mysql_error()); }
            echo "Connected!"; //NOTE: I only just added this to test it
            mysql_select_db(self::SQL_DB);
        }

        function close() {
           mysql_close($this->con);
        }

    }

?> 

为了测试它,我在类外部添加了 echo "Hello World!";,只是作为引用,然后我在下面添加了 connect();它。我打开页面,只看到 Hello World! ...然后我尝试了 echo connect(); ,但还是什么也没看到。然后我尝试了这个:

$baseDAO = new BaseDAO();
$baseDAO->connect();

但还是什么都没有。然后我注释掉了整个类并添加了以下内容:

<?php

    //...
    //Commented out class
    //.... 

    function connect() {
        $con = mysql_connect("localhost", "user6538", "sdWf234Fg" );
        if(!$con) { echo "3"; die('Could not connect: ' . mysql_error()); }
        echo "Connected!";
    }

    echo "Hello World!";
    connect();

?>

瞧,输出是这样的:

Hello World!Connected!

我不明白为什么我的类不起作用...它解释了为什么我的下拉菜单不起作用,因为它们的 DAO 文件需要我的 BaseDAO

有人愿意告诉我这里发生了什么吗?为什么我的课不能上课?

注意:我正在使用 friend 的旧项目作为指导,因此理论上我的 BaseDAO.php 应该可以工作,因为他已经工作了。

编辑:更正了第二个 connect() 函数中的参数

最佳答案

错误情况下mysql_connect的返回值为FALSE。 0 是正值。 为了确定起见,请进行以下更改:

    if(self::con === FALSE) {die('Could not connect to MySQL host: ' . self::SQL_HOST . ' Error: ' . mysql_error()); }

你的第二个 SQL,你确实删除了 CLASS 部分,无法工作,但奇怪的是它却工作了。

$con = mysql_connect(self::SQL_HOST, self::SQL_USER, self::SQL_PW);

如果您的类不存在,则您没有定义 self::常量。在这种情况下,PHP 应该会生成一条错误消息。所以你的描述是错误的并且缺少一些东西。

关于php - 连接到数据库时出现问题 (php),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25309806/

相关文章:

java - 如何通过负载平衡针对同一数据库运行多个tomcat

Mysql 和 Putty - 错误 1044 (42000) : Access denied for user

php - CodeIgniter 中 CRUD 系统和 JOIN 查询的最佳实践

php - 上传的 zip 文件的 Mime 类型是 application/octet

php - 如何使用 Angular http.delete 和 PHP 后端从表中删除记录?

mysql - 将 SQL Server 数据转换为 MySQL

php - 从数据库表构建 php 嵌套列表

php - CakePHP 错误 : Call to a member function find() on a non-object

mysql - Laravel 路由参数未修剪(通常在添加空格时有效)

javascript - Express.js(node.js框架)带有sql数据库,无法正确连接文件之间