【问题标题】:Not able to retrieve company name from MySQL database table无法从 MySQL 数据库表中检索公司名称
【发布时间】:2017-05-03 05:52:58
【问题描述】:

我正在尝试检索公司名称并将其存储在 CodeIgniter 的会话中,但我无法从 pr_users_details 表中检索公司字段。

row1->company 应该给我公司名称,但事实并非如此。

<?php
Array
(
[session_id] => ed64aacc3975c359615569ff9c0bedb1
[ip_address] => ::1
[user_agent] => Mozilla/5.0 (Windows NT 6.2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/57.0.2987.133 Safari/537.36
[last_activity] => 1493791463
[user_data] => 
[is_admin_logged_in] => 1
[admin_user_name] => admin@google.com
[admin_userpass] => 65e1b655a6d6f4cbed20554d3b52521a743afdc0
[admin_id] => 23
[admin_lastlogin] => 03-05-2017 07:30:37
[admin_lastloginip] => ::1
[lastrefresh] => 1493791470
[company] => 
)
?>

这里的公司没有价值

function check_admin_login()
{

    $this->db->where('username', trim($this->input->post('username')));
    $this->db->where('userpass ', sha1(trim($this->input->post('userpass'))));
    $this->db->where('status', '1');
    $this->db->where('deleted', '0');
    $this->db->select('*');
    $query = $this->db->get($this->myTables['users']);
    if ($query->num_rows() > 0) {
        $row = $query->row();
        $this->db->where('userid', $row->id);
        $this->db->select('firstname,lastname,profileimage,company');
        //$query1 = $this->db->query("Select * from pr_users_details where userid = '".$row->id."'");
        $query1 = $this->db->get($this->myTables['users_details']);
        $row1 = $query1->row();
        $newdata = array(
            'is_admin_logged_in' => true,
            'admin_user_name' => $row->username,
            'admin_userpass' => $row->userpass,
            'admin_id' => $row->id,
            'admin_lastlogin' => date("d-m-Y H:i:s", $row->lastlogin),
            'admin_lastloginip' => $row->lastloginip,
            'lastrefresh' => time(),
            'company' => $row1->company
        );
        $company = $row1->company;
        $this->session->set_userdata($newdata);
        $companyName = $this->session->userdata('company');
        echo "<pre>";
        print_r($this->session->all_userdata());
        echo "</pre>";
        die;

        $this->update_admin_login_time($this->session->userdata('admin_id'));
        $this->admin_init_elements->set_global_user($row->username, $row->userpass);
        if ($this->input->post('remember')) {
            $cookie = array('name' => 'username', 'value' => $row->username, 'expire' => time() + 7600, 'secure' => false);
            $this->input->set_cookie($cookie);
        }
        $name = $row1->firstname . ' ' . $row1->lastname;
        $cookie1 = array('name' => 'name', 'value' => $name, 'expire' => time() + 7600, 'secure' => false);
        $this->input->set_cookie($cookie1);
        $cookie2 = array('name' => 'image', 'value' => $row1->profileimage, 'expire' => time() + 7600, 'secure' => false);
        $this->input->set_cookie($cookie2);


        return 'Login Successful';
    } else {
        return 'Incorrect Username or Password.';
    }

}

打印会话时我得到这个:

【问题讨论】:

  • 但不是。” - 想详细说明一下吗?您是否收到错误消息,或者那里的其余数据,只是没有公司名称?
  • 另外:请改进代码的格式。减少过多的缩进,因此不需要水平滚动。
  • 完成,谢谢建议
  • print_r($row1) 并发布数据

标签: php mysql codeigniter codeigniter-2 codeigniter-3


【解决方案1】:

您能否在您的数据库表中检查用户有公司名称,因为我看到该表有很多公司名称字段是空的。

如果有数据,请尝试以下代码:

$row1[0]->公司;

【讨论】:

  • 添加了所有字段并尝试了 $row1[0]->company;还是不行
  • 您确定此查询有公司名称吗?您能否在第二次查询后尝试 $this->db->last_query() 并查看您的真实查询是什么,然后在您的数据库中运行此查询然后查看结果。
【解决方案2】:

在这里,您需要应用您的调试技能。您可以按如下方式调试您的代码:

首先您可以通过应用静态公司名称进行检查,如下所示:

$newdata = array(
            'is_admin_logged_in' => true,
            'admin_user_name' => $row->username,
            'admin_userpass' => $row->userpass,
            'admin_id' => $row->id,
            'admin_lastlogin' => date("d-m-Y H:i:s", $row->lastlogin),
            'admin_lastloginip' => $row->lastloginip,
            'lastrefresh' => time(),
            'company' => 'static_abc_company'
        );

现在,如果您能够在会话中检索它,那么您的数据库查询/数据存在问题,因此您可以打印由数据库查询获取的数据,如下所示并检查:

 $this->db->where('userid', $row->id);
        $this->db->select('firstname,lastname,profileimage,company');
        //$query1 = $this->db->query("Select * from pr_users_details where userid = '".$row->id."'");
        $query1 = $this->db->get($this->myTables['users_details']);
        $row1 = $query1->row(); 
        print_r($row1->result_array);

如果您没有从数据库中看到公司的数据,请检查数据库中的数据。

【讨论】:

    猜你喜欢
    • 2018-04-28
    • 2021-09-19
    • 2020-11-01
    • 1970-01-01
    • 1970-01-01
    • 2013-02-13
    • 1970-01-01
    • 2014-09-11
    • 1970-01-01
    相关资源
    最近更新 更多