Привет, эксперты по Codeigniter.
Я собираю QUERY несколькими вызовами функции.
Когда это будет сделано, я, конечно, буду использовать QUERY для получения некоторых данных.
Каждый вызов вызывает другую функцию, которая получает и возвращает некоторые переводы, которые должны использоваться в QUERY
Но похоже, что условие WHERE в функции перевода объединяется с условием WHERE, котороеЯ компилирую в основном QUERY
private function add_to_asq($field_name, $values)
{
.
.
.
.
$result = array();
foreach( $values[$last_level] as $val )
{
foreach( $val as $v )
{
$result[] = $this->db->escape( $this->asq_value_translate( $last_level, $v, $field_name ) );
}
}
$this->db->where_in( sprintf( '%1$s' , $field_name ) , implode( ',' , $result ) );
}
private function asq_value_translate( $level, $value_md5 , $field_name )
{
$this->db->select( sprintf( 'level_%1$d, level_%1$d_value' , $level ) )
->distinct()
->from('search_options_tree_view')
->where( sprintf( 'md5( level_%1$d_value ) = ' , $level ), $value_md5 )
->where( 'field_name' , $field_name );
$q = $this->db->get();
$value_name = sprintf( 'level_%1$d' , $level );
$row = $q->row(0);
$q->free_result();
return $row->$value_name;
}
, и БД жалуется на это
Номер ошибки: 1054
Неизвестный столбец 'type' в 'where clause'
SELECT DISTINCT `level_1`, `level_1_value` FROM (`search_options_tree_view`) WHERE
`type` IN ('\'Forhandler\'')
AND md5( level_1_value ) = '138be735c55896dbdbea9b6c5d503b6f' AND `field_name` = 'fuel'
Имя файла: C: \ wamp \ www \ system \ database \ DB_driver.php
Номер строки: 330
Как вы видите type
IN ('\ 'Forhandler \' ') не имеет ничего общего с asq_value_translation.
У вас есть предложение?
Я думал о клонировании db-объекта, но потом подумал, что я спрашиваюсначала и стреляйте позже.
Спасибо большое и приятно провести время.