我研究过非法偏移类型,但似乎无法找到这一类型的底部。
我有一个脚本从表id
列linkages
中选择id
并返回一个数组$resultid
。
在我的脚本的第二部分中,我有一个循环,从content
latestRevision
选择$linktagId is equal to $id
。
当我声明$id = $resultid
并且$ resultid有多个值时,我收到警告:
Illegal offset type ... on line 252
第252行:
$result[$lId] = $stmt->fetch();
但是,如果我通过将fetchAll更改为Fetch将原始数组中的值限制为1,则运行正常。
非常感谢任何帮助。这是我的代码:
public function testAction()
{
//Return list of tags for the defined user and make default type 10
$u = 2;
$t = 10;
$resultid = array();
//Connect to database
$db = Zend_Db_Table::getDefaultAdapter();
$select = $db->select()
->from(array('lt' => 'Linktags'),
array('id'))
->where('userId = ?', $u)
->where('type = ?', $t);
$stmt = $select->query();
$resultid = $stmt->fetchAll();
//print_r($resultid);
//Get latest revision from database and loop through $id's
$id = $resultid;
//print_r($id);
//setup array and loop
$result = array();
foreach($id as $lId) {
//Connect to database
$db = Zend_Db_Table::getDefaultAdapter();
//Perform Query
$select = $db->select('')
->from(array('lr'=>'LinktagRevisions'),
array('content'))
->where('linktagId = ?', $lId)
->order('updated DESC')
->limit(1);
$stmt = $select->query();
$result[$lId] = $stmt->fetch();
}
$this->_helper->json($result,true);
}
答案 0 :(得分:1)
如果我没弄错,fetchAll
将返回一个数组数组
所以$lId
是一个数组。
尝试这样的事情:
foreach($id as $lId_all) {
$lId = $lId_all[0];
....
或
foreach($id as $lId_all) {
foreach($lId_all as $lId) {
....