在php数据库连接中使用两个SELECT查询

时间:2017-07-19 09:32:32

标签: php mysql

这里是my_sqli数据库连接

class FbChatMock {
    // Holds the database connection
    private $dbConnection;
    private $_dbHost = 'localhost';
    private $_dbUsername = 'root';
    private $_dbPassword = '';
    public $_databaseName = 'erp5_temp2';
    public function __construct() {
        $this->dbConnection = new mysqli($this->_dbHost, $this->_dbUsername, 
            $this->_dbPassword, $this->_databaseName); 
        if ($this->dbConnection->connect_error) {
            die('Connection error.');
        }
    }

我在getchat函数中得到两个参数:

public function getchat($userId, $id){ 
    $meesage = array();

    $query = "SELECT u.user_id FROM  `users` u where u.id='$id'";
    $resultObj = $this->dbConnection->query($query);
    $user = $resultObj->fetch_assoc())
    $userid = $user;
}

我从查询中获取$userid变量并在此查询中使用它:

$query = "SELECT u.id,c.message,c.sent_on FROM `chat` c JOIN 
    `users` u ON c.user_id=u.user_id where u.id='$id' AND c.user_id='$userid'";
     // Execute the query
     $resultObj = $this->dbConnection->query($query);
     // Fetch all the rows at once.
     while ($rows = $resultObj->fetch_assoc()){
         $meesage[] = $rows;
     }
     return $meesage;

问题是我的第一个SQL查询无法正常工作。我通过显示echo的$userid值来测试它。

2 个答案:

答案 0 :(得分:3)

Chage this line

$userid = $user;

到此

$userid = $user['user_id'];

因为$ user是包含您选择的所有列的数组,并且您只需要从中获取ID。

答案 1 :(得分:0)

你的问题在于:

$user = $resultObj->fetch_assoc())
$userid = $user;

因为mysqli::fetch_assoc()检索了一个关联数组。因此,您必须像这样访问它(给定选择中的列名称):

$userid = $user["user_id"];