使用MySQL和PDO,我有以下准备好的声明:可选参数
$stmt = $bdd->prepare('SELECT field FROM table WHERE category=:category;');
然后,如果我这样做,它工作得很好,我有所有我想在$results
:
$stmt->execute(array('category' => $someCategory));
$results = $stmt->fetchAll();
但是,我也希望能够执行相同的声明,没有WHERE
子句。是否有可能执行准备好的语句并让它忽略WHERE
子句(例如通过不传入任何参数)?
或者我必须做一个新的SELECT field FROM table;
查询吗?
注意:$stmt->execute();
返回“No data supplied for parameters in prepared statement”
和$stmt->execute(array('category' => ''));
什么都不返回。
感谢
您是否从第二次尝试的查询中删除了WHERE子句? –
*“$ stmt-> execute(array('category'=>''));不返回任何内容。”* ---确切地说。你不要求任何东西,你会得到这个;没有。 *是不是正确的山姆?* @JayBlanchard –
'SELECT字段,类别'也许? –