【问题标题】:How to fix Error Number: 1054 Unknown column 'Array' in 'where clause'如何修复错误号:“where 子句”中的 1054 未知列“数组”
【发布时间】:2019-08-16 06:50:44
【问题描述】:

这是我的错误:

遇到 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.id, menu FROM user_menu 加入 user_access_menuuser_menu.id = user_access_menu.menu_id WHERE user_access_menu.role_id = 数组 ORDER BY user_access_menu.menu_idASC

文件名: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;
?>

【问题讨论】:

  • 第一行告诉你问题,$role_id 是一个数组,你正试图将它用作字符串。您需要从中提取适当的值(可能是$role_id[0],但如果没有看到更多代码,则无法分辨)以在查询中使用。

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


【解决方案1】:

这是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;
?>

【讨论】:

  • 非常感谢这个命令对我有用:$menu = $this->db->query($queryMenu,print_r($role_id))->result_array();
【解决方案2】:

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

【讨论】:

  • 非常感谢这个命令对我有用:$menu = $this->db->query($queryMenu,print_r($role_id))->result_array();
猜你喜欢
  • 1970-01-01
  • 2015-09-11
  • 1970-01-01
  • 1970-01-01
  • 2011-03-22
  • 2016-03-19
  • 1970-01-01
  • 2021-07-22
  • 1970-01-01
相关资源
最近更新 更多