如何修复错误号:1054“ where子句”中的未知列“ Array”

时间:2019-03-25 23:26:03

标签: php where-clause where-in mysql-error-1054

这是我的错误:

  

遇到PHP错误严重性:注意消息:数组到字符串   转换文件名:templates / sidebar.php行号:24回溯:

     

文件:   A:\ Sites \ PHP_CI \ hasan-login \ application \ views \ templates \ sidebar.php   行:24函数:_error_handler

     

文件:A:\ Sites \ PHP_CI \ hasan-login \ application \ controllers \ Admin.php   行:14功能:查看

     

文件:A:\ Sites \ PHP_CI \ hasan-login \ index.php行:315功能:   require_once发生数据库错误

     

错误号:1054'where子句'中的未知列'Array'

     

user_menu联接中选择idmenuuser_menu   user_access_menuuser_menuid = user_access_menumenu_id   user_access_menurole_id =数组ORDER BY   user_access_menumenu_id ASC

     

文件名:A:/Sites/PHP_CI/hasan-login/system/database/DB_driver.php   行号:691

我使用php codeigniter。但是当我删除程序运行平稳的部分时。也许在哪里的错误。如何解决此错误?

这是我的代码:

<?php
//error_reporting(0);
$role_id = $this->session->userdata('role_id');
$queryMenu = "SELECT `user_menu`.`id`, `menu`
                FROM `user_menu` JOIN `user_access_menu`
                 ON `user_menu`.`id` = `user_access_menu`.`menu_id`
            WHERE `user_access_menu`.`role_id` = $role_id
            ORDER BY `user_access_menu`.`menu_id` ASC 
            ";
$menu = $this->db->query($queryMenu)->result_array();
var_dump($menu);
die;
?>

2 个答案:

答案 0 :(得分:0)

$ role_id 变量上使用 printr ,我怀疑它是一个数组,这就是为什么出现此错误的原因。

答案 1 :(得分:0)

这是代码初始化工具,可以尝试使用codeigniter query builder page中提供的OOB函数:

 <?php
$role_id = $this->session->userdata('role_id');
$queryMenu = "SELECT `user_menu`.`id`, `menu`
                FROM `user_menu` JOIN `user_access_menu`
                 ON `user_menu`.`id` = `user_access_menu`.`menu_id`
            WHERE `user_access_menu`.`role_id` = ?
            ORDER BY `user_access_menu`.`menu_id` ASC 
            ";
$menu = $this->db->query($queryMenu,array($role_id))->result_array();
var_dump($menu);
die;
?>