3

我正在尝试使用 php 和我的 sql 编写一个 ajax 聊天应用程序。我有一个名为 connect.php 的文件,如下所示:

mysql_connect("host", "username", "password");
mysql_select_db("database name");

我有另一个名为 Core.php 的文件,它需要与数据库的相同连接才能从我的数据库中获取聊天消息。Core.php 看起来像这样:

class Core {
protected $db, $result;
private $rows;

public function __construct() {
    $this->db = new mysqli('host', 'username', 'password','database name') or die('Connection Failure');
}
}

如何将 $this->db 设置为我已经打开的同一连接?

就像现在一样,connect.php 在我的 init.php 文件中在 Core.php 之前被调用,导致聊天消息没有显示在框中。如果我注释掉对 connect.php 的调用,则会显示聊天消息,但无法访问所有用户登录数据并且用户将被注销。谁能帮我这个?这让我疯狂

编辑:这是我的 init.php 文件,其中 core.php 和 connect.php 被调用

ob_start();
session_start();
error_reporting(0);

$current_file = explode('/',$_SERVER['SCRIPT_NAME']);
$current_file = end($current_file);

require 'core/database/connect.php';
require 'functions/general.php';
require 'functions/users.php';
require 'classes/Core.php';
4

2 回答 2

1

我不是 100% 确定你在做什么,所以这是最好的猜测答案......首先,你如何分配已经打开的连接?

//connect.php
<?php
    $conn = mysql_connect("$host", "$u", "$p");
    mysql_select_db("$db");
?>

<?php
include 'connect.php';

class Core
{
    private $conn;

    function __construct()
    {
        global $conn;
        $this->conn =& $conn;
    }
}
?>
于 2013-03-18T14:37:06.883 回答
0
public function __construct() {
      $this->db = new mysqli('$host', '$u', '$p','$db') or die('Connection Failure');
 }

此代码不会运行,请确保您使用了 "$host"/"$u"..etc 而不是 '$host' 或 '$u'

php 解析器会将其解析为字符串而不是引号内的变量。

于 2013-03-18T14:31:36.917 回答