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

问题描述 投票:1回答:2

这是我的错误:

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

文件: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'

SELECT user_menu.idmenu FROM user_menu JOIN user_access_menu ON user_menu.id = user_access_menu.menu_id WHERE user_access_menu.role_id = Array ORDER BY user_access_menu.menu_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;
?>
php where-clause where-in mysql-error-1054
2个回答
0
投票

这是codeigniter,你可以使用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;
?>

0
投票

在$ role_id变量上使用printr,我怀疑它是一个数组,这就是你得到这个错误的原因。

© www.soinside.com 2019 - 2024. All rights reserved.