메뉴 건너뛰기

executeQuery()의 묘한 리턴값

Average Rating:
 0명 참여
Rate this page:
평점 한줄평 글쓴이 작성날짜


excuteQuery()문으로 구하려는 실제 DB 리턴값은 Object 형식이며, $book_nr->data 에 담겨진다.


if(is_array($book_nr->data))를 사용하여 리턴값의 유무를 판단하려고 했으나

그냥 if($book_nr->data) 를 사용하면 된다.



   $book_nr = executeQuery('booking.getBooking_by_book_nr', $args);
   if(is_array($book_nr->data)) echo 'This is array';
   echo print_r($book_nr,true);



의의 코드로 두 가지 DB를 검색하고 리턴 값을 출력해 보았다.




1. $book_nr->data (DB에 일치하는 값이 있을 때의 리턴 값)


Object Object ( [error] => 0 [message] => success [variables] => Array ( [_query] => SELECT `book_nr`, `status` FROM `db_booking` as `booking` WHERE `book_nr` = '966897228' [_elapsed_time] => 0.00031 ) [httpStatusCode] => [data] => stdClass Object ( [book_nr] => 966897228 [status] => cancelled_by_guest ) )




2. $book_nr->data (DB에 일치하는 값이 없을 때의 리턴 값)


This is arrayObject Object ( [error] => 0 [message] => success [variables] => Array ( [_query] => SELECT `book_nr`, `status` FROM `db_booking` as `booking` WHERE `book_nr` = 'Book_nr' [_elapsed_time] => 0.00033 ) [httpStatusCode] => [data] => Array ( ) )




1. 과 2. 의 차이는 둘다 $book_nr->data의 리턴값이 있으나 성공한 경우에는 Object 형식의 배열이 리턴되었고, 실패한 경우에는 빈 배열이 리턴되었다.





is_array($book_nr->data) 의 값을 구해보면


1.의 경우에는 거짓, 2.의 경우 참이 된다.


나의 생각과 반대라서 조금 당황스럽다.


2. 의 경우 빈 배열인데도 형식이 배열이니 참이고, 1. 은 Object 형식이라 거짓이라는 것이다.

제목 날짜
Star Rating 별점 위젯 업데이트 정보   2014.03.09
modules/editor/tpl.js/uploader.js  
Zeroclipboard 적용하기   file
    10
xe jQuery 최신버전 사용하기 CDN  
    10
http://www.bootstrapcdn.com/   file
태그 목록