2012-01-24 9 views
1

Я новичок в Codeigniter и PHP.Codeigniter Возвращаемое значение

При выполнении некоторых операций у меня есть некоторые сомнения, особенно в библиотеках баз данных.

$get = "select filed_1 from tbl_ctc where ctc=?"; 
$get = $this->db->query($get,array($ctc_n)); 

if ($get) 
{ 

//do some operations 
} 
else 
{ 
//do some another operations 

} 

Какова будет возвращаемая стоимость $ get, если это успех?

Ожидая мнение & внушение [downvotes тоже]

Спасибо.

ответ

4

Какие «мнения и предложения» вы ожидаете?

Запрос() метод возвращает результирующий объект при использовании чтения запросов (например, отборное), в то время как с писать запросов (например, вставки или обновления) возвращает значение TRUE или FALSE.

В случае SELECT, то есть, вы можете проверить, если он имеет какой-то результат:

$query = $this->db->query($select_query); 
if($query->num_rows() > 0) 
{} 

Хотя в случае вставки для экс .:

$query = $this->db->query($insert_query); 
if($query) // or if(FALSE !== $query) 
{} 
else 
{} 

Обратите внимание, что если вы используете Active Record, у вас будут методы result()/row() и result_array()/row_array(), которые возвратят либо полный объект/массив, либо пустой, поэтому вам нужно будет проверить эти значения.

+0

Спасибо, это то, что я точно ожидал ответа, но что будет возвращено, если запрос не удался в некоторых случаях [в некоторых запросах] .... – Red

+0

«мнения и предложения» - о практике кодирования, ошибках начинающих, хороших ссылках на источники и т. д. – Red

+1

Ну, я не могу проверить прямо сейчас, но просто var_dump() возвращаемое значение неудачного запроса (если вы можете его каким-то образом создать). Я подозреваю пустой объект или ЛОЖЬ, но никогда не пробовал это. –

1

Результатом будет объект. Вы должны сделать еще один шаг, чтобы получить ожидаемое значение, например.

$get = $this->db->query($get,array($ctc_n)); 
$res = $get->result_array(); 

echo $res[0]['filed_1']; 

См Active Record Class и examples от руководства пользователя для дальнейшего использования.

+0

yeah..sure я могу использовать 'row_array' тоже, но у меня проблемы с этим циклом IF, я могу сделать так: if ($ get)' ?? – Red

+0

@DileepDil - Если вы просто хотите увидеть, была ли запись (-ы) возвращена, вы можете использовать 'if ($ get-> num_rows()> 0) {}' – stealthyninja

+0

Okkey, но я думаю, что он вернется 'FALSE', если запрос не удался, поэтому я могу использовать' if ($ get! = FALSE) '?? а также о функциональности вставки? – Red

Смежные вопросы