我在使用多个参数构建无胖框架中的查询时遇到了麻烦。
$result = $db -> exec( array('SELECT *
FROM table WHERE table.type = ?', ' OR table.type = ?'), array($id[0],$id[1]));
我收到此错误: 为foreach()提供的参数无效
[Z:/web/Site/lib/base.php:2015] Base->错误(500,'为foreach()提供的无效参数')
当我直接在db上测试它时,查询有效,所以这不是问题。
说实话,我认为here显示的代码没有任何区别:
$db->exec(
array(
'DELETE FROM diet WHERE food=:name',
'INSERT INTO diet (food) VALUES (?)',
'SELECT * FROM diet'
),
array(
array(':name'=>'cola'),
array(1=>'carrot'),
NULL
)
);
编辑各种不起作用的选项:
$result = $db -> exec( array('SELECT *
FROM table WHERE table.type = ? OR table.type = ?'), array($id[0],$id[1]));
$result = $db -> exec( array('SELECT *
FROM table WHERE table.type = ?', ' OR table.type = ?' ,$id[0],$id[1]);
这是Fat free框架本身的例子..感谢任何帮助..
答案 0 :(得分:3)
应该是
$result = $db -> exec(
'SELECT * FROM table WHERE table.type = ? OR table.type = ?',
array(1=>$id[0],2=>$id[1])
);
当第一个参数是一个数组时,它会转换为一个事务,其中来自$ commands和$ args的每个数组值用于单个查询。 http://fatfreeframework.com/sql#Transaction
答案 1 :(得分:0)
尝试
$result = $db -> exec(
'SELECT * FROM table WHERE table.type = :typeOne OR table.type = :typeTwo',
array(':name'=>$id[0],':typeTwo'=>$id[1])
);
我在使用无脂肪食品和使用食品时遇到问题?在sql中,解决了我的问题!