2017-07-19 138 views
2

这里是my_sqli数据库连接使用PHP数据库连接的两个SELECT查询

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值来测试它。

回答

3

恰克此行

$userid = $user; 

对此

$userid = $user['user_id']; 

因为$用户是阵列选择了所有列,你需要从它那里得到唯一ID。

+0

我改变了这一行$ userid = $ user ['user_id']; echo($ userid); exit();但它没有显示回显结果 –

0

你的问题就在这里:

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

因为mysqli::fetch_assoc()与检索关联数组。因此,你必须像这样访问它(给出你选择的列名):

$userid = $user["user_id"]; 
+0

我改变了这一行$ userid = $ user ['user_id']; echo($ userid); exit();但它没有显示回显结果 –

+0

试着'var_dump()'看看它告诉你什么 –