我正在使用带有准备好的语句的 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))
The行if()
返回 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=?”
我看不出有什么问题。
任何帮助将不胜感激,
谢谢,尼科