#php #database #codeigniter
#php #База данных #codeigniter
Вопрос:
Вот код:
public function get_id_model($email){
$this->db->select('user_id');
$this->db->where('email', $email);
$query = $this->db->get('users');
return $query->result();
}
Этот код отлично работает локально. Но когда я отправил проект на 000webhost, он вернул значение null, хотя моя удаленная база данных содержит данные.
Database.php
$db['remote']['hostname'] = 'xxx.000webhost.com';
$db['remote']['username'] = 'xxx';
$db['remote']['password'] = 'xxx';
$db['remote']['database'] = 'xxx';
$db['remote']['dbdriver'] = 'mysql';
$db['remote']['dbprefix'] = '';
$db['remote']['pconnect'] = TRUE;
$db['remote']['db_debug'] = TRUE;
$db['remote']['cache_on'] = FALSE;
$db['remote']['cachedir'] = '';
$db['remote']['char_set'] = 'utf8';
$db['remote']['dbcollat'] = 'utf8_general_ci';
$db['remote']['swap_pre'] = '';
$db['remote']['autoinit'] = TRUE;
$db['remote']['stricton'] = FALSE;
В Autoload.php
$autoload['libraries'] = array('database', 'session');
Я что-нибудь пропустил?
Комментарии:
1. Здесь вы используете старый
mysql_
API базы$db['remote']['dbdriver'] = 'mysql';
данных, если ваш хостинг использует PHP7, он не существует. Или, может000webhost
бытьmysql_
, отключил расширение?2. Я отредактировал ваш вопрос, указав то, что казалось фактическими учетными данными для входа. Я настоятельно рекомендую вам изменить их сейчас, если это были фактические учетные данные.
3. просто измените его на mysqli
4. @JamesLalor или mysql для mysqli?
5. @IsmailRubad да, CI обработает все остальное.
Ответ №1:
Просто измените драйвер базы данных с mysql на mysqli. Вы делаете это в database.php файл в папке config.
Комментарии:
1. «Просто измените драйвер базы данных с mysql на mysqli». — Это требует более подробной информации. Они не могут просто изменить свой код с mysql на mysqli_ без соблюдения определенного синтаксиса.
2. @Fred-ii- на самом деле это вполне приемлемый ответ, CI будет обрабатывать различия с помощью собственных библиотек драйверов базы данных. На самом деле не нужно больше деталей.