и на execute_query он мне выдает ошибку - мол запрос неверный. гляжу в запрос, а там
... FROM ibf_Array ...
начал разбираться и лазить по коду.
оказалось что если в запросе есть элемент add_join то массив на from разбивается по человечески, а вот на простой обработке - нет, прямо так в запрос и передается.
это ошибка или я что-то не так делал?
решил проблему следующим путем. теперь функция simple_select из class_db_mysql.php выглядит так:
function simple_select( $get, $table, $where="" )
{
if (is_array($table))
{
$final_from = array();
$from_array = array();
$from_array = $table;
foreach( $from_array as $tbl => $alias )
$final_from[] = $this->obj['sql_tbl_prefix'].$tbl.' '.$alias;
$table = implode( "," , $final_from);
}
else
$table = $this->obj['sql_tbl_prefix']."$table";
$this->cur_query .= "SELECT $get FROM $table";
if ( $where != "" )
$this->cur_query .= " WHERE ".$where;
}
Находясь на нашем сайте, вы соглашаетесь на использование файлов cookie, а также с нашим положением о конфиденциальности Политика конфиденциальности и пользовательским соглашением Условия использования.
Вопрос
.silent
Столкнулся недавно с такой проблемой интересной.
Начал модифицировать один из стандартных query и поставил на вход элемента 'from' в массиве запроса две таблицы с алиасами.
примерно так:
$this->ipsclass->DB->build_query( array('select' => 'p.*, t.tid, t.title as topic_title', 'from' => array('posts' => 'p', 'topics' => 't'), 'where' => 'p.topic_id = t.tid', 'order' => 'p.pid desc')и на execute_query он мне выдает ошибку - мол запрос неверный. гляжу в запрос, а там
начал разбираться и лазить по коду.
оказалось что если в запросе есть элемент add_join то массив на from разбивается по человечески, а вот на простой обработке - нет, прямо так в запрос и передается.
это ошибка или я что-то не так делал?
решил проблему следующим путем. теперь функция simple_select из class_db_mysql.php выглядит так:
function simple_select( $get, $table, $where="" ) { if (is_array($table)) { $final_from = array(); $from_array = array(); $from_array = $table; foreach( $from_array as $tbl => $alias ) $final_from[] = $this->obj['sql_tbl_prefix'].$tbl.' '.$alias; $table = implode( "," , $final_from); } else $table = $this->obj['sql_tbl_prefix']."$table"; $this->cur_query .= "SELECT $get FROM $table"; if ( $where != "" ) $this->cur_query .= " WHERE ".$where; }если кому поможет - пользуйте.
Ссылка на комментарий
Поделиться на других сайтах
0 ответов на этот вопрос
Рекомендуемые сообщения
Присоединиться к обсуждению
Вы можете ответить сейчас, а зарегистрироваться позже. Если у вас уже есть аккаунт, войдите, чтобы ответить от своего имени.