Ошибка базы данных CodeIgniter: real_scape_string() для логического значенияPhp

Кемеровские программисты php общаются здесь
Ответить
Anonymous
 Ошибка базы данных CodeIgniter: real_scape_string() для логического значения

Сообщение Anonymous »

Я столкнулся с этой ошибкой в ​​функции модели:

An uncaught Exception was encountered

Type: Error
Message: Call to a member function real_escape_string() on boolean
Filename: /var/www/html/project/system/database/drivers/mysqli/mysqli_driver.php
Line Number: 391

Backtrace:
File: /var/www/html/project/application/models/FeedCompanies.php
Line: 125
Function: where


Это функция:

public function getCompanyMessages($idCompany)
{
$usersModel = $this->modelslibrary->getModelUsers();
$companiesModel = $this->modelslibrary->getModelCompanies();

$where = array(
$usersModel->table_name.'.id_company' => $idCompany,
$this->table_name.'.deleted' => 'N'
);

$this->db->select(
$this->table_name.'.'.$this->primary_key.', '.
$this->table_name.'.token, '.
$usersModel->table_name.'.id_company, '.
$usersModel->table_name.'.slug, '.
$this->table_name.'.id_user, '.
$this->table_name.'.message, '.
$this->table_name.'.posted_as_company, '.
$this->table_name.'.likes, '.
$this->table_name.'.created_at,
getUserName('.$usersModel->table_name.'.name, '.$usersModel->table_name.'.last_name) as name,
getProfilePhotoURL('.$usersModel->table_name.'.profile_photo) as profile_photo,
getCompanyLogo('.$companiesModel->table_name.'.logo) as company_logo, '.
$companiesModel->table_name.'.name as company_name'
);

$this->db->join($usersModel->table_name, $usersModel->table_name.'.'.$usersModel->primary_key.' = '.$this->table_name.'.id_user');
$this->db->join($companiesModel->table_name, $companiesModel->table_name.'.'.$companiesModel->primary_key.' = '.$usersModel->table_name.'.id_company');
$this->db->where($where);
$this->db->order_by($this->table_name.'.created_at ASC');

$queryResult = $this->db->get($this->table_name);

if (!$queryResult) return null;

$messages = $queryResult->result_array();

if (!$messages) return null;

return $messages;
}


Строка 125 — это $this->db->where($where);, поэтому я написал echo(var_export($where, true)); перед этим, чтобы получить содержимое массива $where, а содержимое именно такое:

array (
'users.id_company' => 2,
'feed_companies.deleted' => 'N',
)


Почему у меня возникает эта ошибка и как ее решить?

Моя среда:
  • CodeIgniter 3.0.4
  • PHP 7.2.5
  • Ubuntu 16.04
  • MySQL Server 5.7.22
  • Apache 2.4.18
А вот мой конфиг/database.php:

$active_group = 'default';
$query_builder = TRUE;

$db['default'] = array(
'dsn' => '',
'hostname' => '127.0.0.1',
'username' => '{{user}}',
'password' => '{{password}}',
'database' => '{{database}}',
'dbdriver' => 'mysqli',
'dbprefix' => '',
'pconnect' => FALSE,
'db_debug' => (ENVIRONMENT !== 'production'),
'cache_on' => FALSE,
'cachedir' => '',
'char_set' => 'utf8',
'dbcollat' => 'utf8_general_ci',
'swap_pre' => '',
'encrypt' => FALSE,
'compress' => FALSE,
'autoinit' => TRUE,
'stricton' => FALSE,
'failover' => array(),
'save_queries' => TRUE
);


--- РЕДАКТИРОВАНИЕ ---

Как и просили, вот содержимое моей модели FeedCompanies.php:



Подробнее здесь: https://stackoverflow.com/questions/505 ... on-boolean
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Php»