プリペアドステートメントでphpmysqli拡張機能を使用していますが、1つのクエリでクエリオブジェクトが作成されていません。
コードは次のとおりです。
$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))
Theif()
はfalseを返しているため、$query
オブジェクトを作成せず、if内のコードを実行していません。
echo $sqlq;
リターン:
"SELECT id、name FROM productcategories JOIN products ON productcategories.productid = products.id WHERE categoryid =?OR categoryid =?OR categoryid =?OR categoryid =?OR categoryid =?OR categoryid =?"
何も悪いことはありません。
どんな助けでも大歓迎です、
ありがとう、ニコ