我正在尝试使用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设置为我已打开的同一连接?
就像现在一样,在Core.php之前的init.php文件中调用了connect.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';
答案 0 :(得分: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;
}
}
?>
答案 1 :(得分:0)
public function __construct() {
$this->db = new mysqli('$host', '$u', '$p','$db') or die('Connection Failure');
}
此代码无法运行,请确保您已使用“$ host”/“$ u”...等而不是'$ host'或'$ u'
php解析器会将其解析为字符串而不是引号内的变量。