Как я могу получить данные из базы данных, которая связана с пользователем в codeigniter - PullRequest
0 голосов
/ 05 апреля 2020

Я действительно новичок в codeigniter, но я решил использовать его в своем проекте. Мне удалось создать панель управления, но моя проблема в том, что, когда я выбирал данные из базы данных, он давал мне все данные в базе данных, а не те, которые характерны для вошедшего в систему пользователя. Для PDO я могу понять это, но я не знаю, как бы я сделал это в codeigniter. Может ли кто-нибудь помочь мне с правильным кодом. Здесь я пропущу код PDO, но как бы это сделать в codeigniter. Я хочу получить пользователя, где mobileNumber = mobileNumber. Спасибо, пока я жду ответа.

$query=$pdo->prepare("SELECT * FROM userdata WHERE (mobileNumber=:mnumber || emailId=:emailid)");
      $query->execute(array(':username'=> $username));
       while($row=$query->fetch(PDO::FETCH_ASSOC)){
        $jan=$row['jan'];
        $feb=$row['feb'];
        $march=$row['march'];
       }```

1 Ответ

0 голосов
/ 06 апреля 2020

Прежде всего, вы должны установить конфигурацию базы данных в application / config / database. php Например,

$db['default'] = array(
    'dsn'   => 'mysql:host=localhost; dbname=myproject; charset=utf8;', //db connection string
    'hostname' => 'HOST',
    'username' => 'DBUSER_UNAME',
    'password' => 'DBUSER_PW',
    'database' => 'DB',
    'dbdriver' => 'pdo'
    /* Other configurations
    'dbprefix' => '',
    'pconnect' => FALSE,
    'db_debug' => (ENVIRONMENT !== 'production'),
    'cache_on' => FALSE,
    'cachedir' => '',
    'char_set' => 'utf8',
    'dbcollat' => 'utf8_general_ci',
    'swap_pre' => '',
    'encrypt' => FALSE,
    'compress' => FALSE,
    'stricton' => TRUE,
    'failover' => array(),
    'save_queries' => TRUE */
);

Вы также можете определить больше конфигураций, $ db [ 'default'], $ db ['db_1'], $ db ['db_2'], e cc .. Подробнее о конфигурации здесь .

CodeIgniter равен MVC framework, он делит код на Models (классы, расширяющие CI_Model), Views (php файлы с html, доступ к данным, полученным из контроллера) и Controllers (классы, расширяющие CI_Model, получающие данные из модели и отправляющие для просмотра) , Вы получаете доступ к базам данных в моделях. В конструкторе вызовите $this->load->database(); Он откроет соединение БД, следуя конфигурации по умолчанию. Вы можете выбрать конфигурацию, передав ее в качестве строкового параметра, например, $this->load->database('db_1'); Вы также можете передать вышеописанный массив конфигурации этому методу, но я думаю, что будет лучше, если вы отредактируете файл конфигурации базы данных.

Хорошо, теперь мы готовы!

Чтобы выполнить запрос, вы можете написать (в методе класса Model):

$query = $this->db->query("SELECT * FROM userdata WHERE (mobileNumber=? || emailId=?)", array($mobileNumber, $emailId));
foreach ($query->result() as $row){
        $jan=$row['jan'];
        $feb=$row['feb'];
        $march=$row['march'];
}

Каркас заменит знаки вопроса на значения полей массива, в указанном вами порядке. Другой способ сделать это:

$this->db->select('*');
$this->db->from('userdata');
$this->db->where('mobileNumber', $mobileNumber);
$this->db->or_where('emailId', $emailId);
$query = $this->db->query();
foreach ($query->result() as $row){
    ...
}

Есть и другие возможности сделать это, см. Документы.

Я советую вам прочитать codeigniter docs внимательно, это не так так долго, и это довольно легко для меня. Я надеюсь, что этот ответ будет исчерпывающим, дайте мне знать!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...