我正在使用php mysqli扩展与准备好的语句,但在一个查询中它没有创建查询对象。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
对象,而不是代码的执行任何内部的线如果。
的echo $sqlq;
回报:
“SELECT ID,名字从productcategories JOIN产品ON productcategories.productid = products.id WHERE类别id = OR类别ID = OR类别ID = OR类别ID = OR =类别ID????? OR categoryid =?“
我看不出有什么问题。
任何帮助将不胜感激,
谢谢,尼科
你不是唯一的一个,如果这可以让你放心的话^^而且你有一个很好的反射,回来给解决方案:-) – 2009-07-21 04:41:50
获得投票回答你自己的问题,通过它thunk它:D – rezzif 2009-07-21 04:49:40
橡皮鸭ftw 。 http://www.c2.com/cgi/wiki?RubberDucking – hobodave 2009-07-21 05:04:48