2015-07-23 2 views
-1

Я предполагаю, что php вставляет одинарные кавычки вокруг $ id при связывании параметров, из-за которых мой запрос терпит неудачу. Я знаю, что $ id - проблема, потому что когда я вручную помещаю строку вместо первой? запрос работает. Проблема в том, что мне нужен запрос для работы с использованием переменной $ id, любые предложения о том, как я могу это достичь?Параметры привязки php mysqli

if 
($stmt = $mysqli->prepare("SELECT COUNT(1) from friendships where ? = (select id from users where username = ?) and friendstatus = ?")) { 

$stmt->bind_param("sss", $id, $username,$friendstatus); 
$stmt->execute(); 
$stmt->bind_result($result); 
$stmt->fetch(); 
$stmt->close(); 
     } 
+0

Ваш SQL-запрос плохой. Это не правильный способ сделать это в SQL. – developerwjk

+1

'где? = (select ...) '? почему бы не просто присоединиться? –

+0

собирается конвертировать мой подзапрос в объединение за производительность, спасибо за совет! – SlopTonio

ответ

1

Переменные названия столбцов невозможны с Подготовленными инструкциями. В общем случае имена переменных столбцов не нужны с хорошо выполненными запросами. Вместо этого рассмотрите возможность использования соединения.