php + codeigniter sql запрос - PullRequest
       1

php + codeigniter sql запрос

0 голосов
/ 13 июля 2011

Я хочу сделать запрос в моей модели из таблицы, известной как юрисдикции.Теперь я хочу, чтобы этот запрос предоставил действительный ресурс результатов MySQL.Т.е. я хочу передать результат mysql_fetch_array().Если я пройду в $query = $this->db->query().Я получаю сообщение о том, что переданный аргумент недействителен.Мне было интересно, как я могу преобразовать $query в источник результатов MySQL.

Ответы [ 2 ]

3 голосов
/ 13 июля 2011

Ну, если вы хотите иметь ресурс MySQL, вы должны использовать mysql_query.

У Codeigniter уже есть метод, который будет выдавать вам по одной строке за раз: row_array (на самом деле, у него есть две, другая - просто row, но это возвращает объект, а не массив). Если вы хотите получить числовые индексы по результату result_array, используйте array_values:

$result = $this->db->query( "SELECT 'foo' as foo_rules FROM DUAL" );
$aso_arr = $result->row_array(); // assoc. array w/o numeric indexes
echo $aso_arr[ 'foo_rules' ];
$num_arr = array_values( $aso_arr );
echo $num_arr[ 0 ];

Если вы хотите получить весь результат выбора, используйте result и result_array (они ведут себя аналогично row и row_array, только они возвращают весь набор результатов в массиве)

EDIT

Я повторяю свое первое предложение, но вы можете получить ресурс MySQL следующим образом:

$result = $this->db->query( "SELECT 'foo' as foo_rules FROM DUAL" );
$resource = $result->result_id;

Но, поскольку это не задокументировано, его не следует считать поддерживаемым или даже ожидаемым поведением. Будьте предупреждены.

1 голос
/ 13 июля 2011

Если я вас правильно понимаю, то почему бы просто не использовать доступные методы:

$query->result();

или

$query->result_array();

Выберите тот, который соответствует вашим потребностям.

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