Я использую расширение php mysqli с подготовленными инструкциями, но для одного запроса оно не создает объект запроса.
Вот код:
$sqlq = "SELECT id,name FROM productcategories JOIN products ON productcategories.productid = products.id WHERE categoryid=?";
if($allsubcats)
{
foreach($allsubcats as $key => $data)
{
$sqlq .= " OR categoryid=?";
}
}
echo $sqlq;
if($query = $this->mysqli->connection->prepare($sqlq))
{
$query->bind_param("i", $cat);
if($allsubcats)
{
foreach($allsubcats as $key => $data)
{
$query->bind_param("i", $data[0]);
}
}
$query->execute();
$query->bind_result($id,$name);
$query->store_result();
if($query->num_rows > 0)
{
while($row = $query->fetch())
{
$allprods["id"] = $id;
$allprods["name"] = $name;
}
}
$query->close();
}
Проблема:
Линия if($query = $this->mysqli->connection->prepare($sqlq))
if()
возвращает false и поэтому не создает объект $query
и не выполняет никакого кода внутри if.
Возвращает echo $sqlq;
:
"ВЫБЕРИТЕ ИД, имя ИЗ товарных категорий. ПРИСОЕДИНЯЙТЕСЬ к товарам НА productcategories.productid = products.id, ГДЕ categoryid =? ИЛИ categoryid =? ИЛИ ИД категории =? ИЛИ ИД категории?
Что я не вижу в этом ничего плохого.
Любая помощь будет принята с благодарностью,
Спасибо, Нико