dtstnjl898781429 2016-06-07 03:08
浏览 82
已采纳

如何在mysqli预处理语句中使用多个内连接以及多个WHERE子句? [重复]

I am trying to write a query where I want to select with WHERE clause based on the first join condition and the second WHERE clause based on the second join. I have written it a couple of ways, but it always shows up an error:

Fatal error: Call to a member function bind_param() on boolean in /var/www/html/connections.php on line 80

$user_id is being fetched from somewhere else. so no issues with that, If I run a single join here, it works fine.

Here is my query :

Method 1 :

$sql = $db->prepare("SELECT r.* from registered_users r 
        inner join connections c2 on r.id = c2.uid
        inner join connections c on r.id = c.connections_userid where c2.connections_userid = ? or c.uid = ?");

$sql->bind_param("ii",$user_id,$user_id);           
$sql->execute();

Method 2 :

$sql = $db->prepare("SELECT r.* from registered_users r 
        inner join connections c2 on r.id = c2.uid where     c2.connections_userid = ?
        inner join connections c on r.id = c.connections_userid where c.uid = ?");

$sql->bind_param("ii",$user_id,$user_id);           
$sql->execute();
</div>
  • 写回答

1条回答 默认 最新

  • dsz1966 2016-06-07 03:30
    关注

    You have an error with your prepare, so check it

    $sql = $db->prepare("SELECT r.* from registered_users r 
        inner join connections c2 on r.id = c2.uid
        inner join connections c on r.id = c.connections_userid where c2.connections_userid = ? or c.uid = ?");
    
    if (!$sql) {
       //error !! Let's report it!
       trigger_error($db->error);
    }
    
    $sql->bind_param("ii",$user_id,$user_id);           
    $sql->execute();
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?