【问题标题】:bind_param error in php while using inner join [duplicate]使用内部连接时php中的bind_param错误[重复]
【发布时间】:2016-06-04 12:53:44
【问题描述】:

我正在为一个社交网络做一个小项目。我的问题是在使用多个内部连接时 bind_param 引发错误

Fatal error: Call to a member function bind_param() on boolean in /var/www/html/index.php on line <line number>

这是我的代码:

$user_id 已经从其他地方获取,没有问题。另外,如果我在这里只使用一个内部连接,它就可以工作。

index.php

$sqlFetchUserList = $db->prepare("SELECT r.* from registered_users r inner join connections c
        on r.id = c.connections_userid 
        inner join connections c 
        on r.id = c.uid 
        where c.uid = ? or c.connections_userid = ?");  
       $sqlFetchUserList->bind_param("ii",$user_id,$user_id);
       $sqlFetchUserList->execute();
       $sqlFetchUserList = $sqlFetchUserList->get_result();

我正在尝试在列中有相应记录的任何地方来回选择所有数据。

我知道我在这里做错了,但目前无法弄清楚。

【问题讨论】:

  • 显然连接的表不能有相同的别名c

标签: php mysql mysqli mysqlnd


【解决方案1】:

mysqli_prepare 函数在出错时返回 FALSE。

返回值

mysqli_prepare() 返回一个语句对象,如果发生错误则返回 FALSE

http://php.net/manual/en/mysqli.prepare.php

你想检查从prepare中返回。如果它是 FALSE(一个布尔值)它是 not 一个有效的语句句柄。所以处理错误。您可以调用 mysqli_error() 找出 MySQL 错误是什么。

为了调试,将 SQL 文本带到不同的 MySQL 客户端并对其进行测试,以找出问题所在以及如何修复它。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-25
    • 1970-01-01
    • 2017-01-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多