作者:主宰魔尊_164 | 来源:互联网 | 2023-06-04 10:30
我在使用多个参数的无胖框架中构造查询时遇到麻烦.$result$db-exec(array('SELECT*FROMtableWHEREtable.type?'
我在使用多个参数的无胖框架中构造查询时遇到麻烦.
$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-> error(500,“为foreach()提供了无效的参数”)
当我直接在数据库上测试该查询时,该查询将起作用,所以这不是问题.
老实说,我看不出代码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]);
这是无脂肪框架本身的示例.
解决方法:
它应该是
$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