2016-06-04 2 views
0

Я работаю над небольшим проектом для социальной сети. Моя проблема при использовании множественных внутренних соединений bind_param подбрасывает ошибкуошибка bind_param в php при использовании внутреннего соединения

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(); 

Я пытаюсь выбрать все данные туда и обратно, где есть соответствующая запись в колонках.

Я знаю, что я делаю что-то неправильно здесь, но пока не могу понять это.

+0

Очевидно, что объединенные таблицы не могут иметь один и тот же псевдоним 'c' –

ответ

0

Функция mysqli_prepare возвращает FALSE при возникновении ошибки.

Возвращаемые значения

mysqli_prepare() возвращает объект оператора или FALSE, если произошла ошибка.

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

Вы хотите проверки возвращения из подготовки. Если это FALSE (логический), это не действительный дескриптор инструкции. Поэтому обработайте ошибку. Вы можете позвонить mysqli_error(), чтобы узнать, что такое ошибка MySQL.

Для отладки возьмите текст SQL другому клиенту MySQL и протестируйте его, чтобы узнать, где проблема и как ее исправить.