我收到的错误表明我的WHERE子句中的变量是一个数组,但是当我对它使用gettype()时,它返回它实际上是一个字符串。起初它是一个数组,我研究它,并想出如何变成字符串,但由于某种原因,它仍然认为它是一个数组...这里是代码:
$params = array(':user_id' => $user_id, ':device_token'=>$post['device_token'], ':last_sync_time'=>$post['last_sync_time']);
$get_group = $db->prepare("SELECT group_id
FROM users
WHERE id = '{$user_id}'");
$get_group->execute($params);
$group_id = $get_group->fetchAll(PDO::FETCH_ASSOC); //Gets the group id for the user downloading slides
$group_id = implode($group_id);
然后
$get_group_slides = $db->prepare("SELECT audiourl,color,font_name,font_size,haveaudio,imageurl,isvideo,onlytext,slider_id,videourl,created
FROM admin_slides
WHERE group_id = $group_id AND created > '{$last_admin_sync}'
ORDER BY created
ASC LIMIT 20");
$get_group_slides->execute($params); //will get slides for assigned user group
$ get_group_slides是给我错误的,当我从WHERE子句中删除$ group_id变量时,错误就消失了......我回显$ group_id并显示正确的值.. gettype($ group_id)返回string ...有什么想法吗?
编辑:我刚刚再次测试,我一定做错了,所以它回应变量是一个字符串,但由于某种原因,当我现在回显变量时,它回应“数组”。答案 0 :(得分:0)
我没有使用implode(),而是使用了$ group_id = $ group_id [0] [' group_id'],现在它正在运行!有太多方法可以尝试并做同样的事情 - .-'