'where子句'中的未知列'Array',但变量是字符串,而不是数组

时间:2015-12-16 02:40:12

标签: php mysql arrays

我收到的错误表明我的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 ...有什么想法吗?

编辑:我刚刚再次测试,我一定做错了,所以它回应变量是一个字符串,但由于某种原因,当我现在回显变量时,它回应“数组”。

1 个答案:

答案 0 :(得分:0)

我没有使用implode(),而是使用了$ group_id = $ group_id [0] [' group_id'],现在它正在运行!有太多方法可以尝试并做同样的事情 - .-'