2012-07-19 2 views
0

if (result > 0) 문을 사용하여 아래 코드를 단 한 줄 (또는 간단히 짧게)으로 다시 작성할 수 있습니까?mySQL/PHP : SQL 문, 쿼리 및 결과 할당을 하나의 행에?

// a simple query that ALWAYS gets ONE table row as result 
$query = $this->db->query("SELECT id FROM mytable WHERE this = that;"); 
$result = $query->fetch_object(); 
$id  = $result->id; 

나는 삼항 연산자와 같은 멋진, 매우 감소 구조 보았다 (herehere을 - BTW 더욱 감소 라인의 주석을 참조) 그래서 아마 하나의 결과 SQL에 대한 뭔가있어, 하나의 4-5 라인을 넣어 위와 같은 쿼리.

+0

'fetchOne()'형식 호출을하기 위해 DB 라이브러리를 확장 할 수 있습니까? 당신은 여전히 ​​쿼리가 할 수 있고 실패 할 것이므로 적절한 에러 핸들링을 원할 것입니다. –

+0

항상 귀찮음에 대한 명확성을 선택하십시오 – blockhead

+0

@blockhead 의견을 다시 작성해주십시오. 영어가 모국어가 아닌 사람들에게 이해가되지 않습니다. 메르시! – Sliq

답변

3

당신은 기능의 예기치 않은 응답을 반환하는 경우, 오류를 방출합니다

$query = $this->db->query("SELECT id FROM mytable WHERE this = that;"); 
$result = $query->fetch_object(); 
$id  = $result->id; 

$id = $this->db->query("SELECT id FROM mytable WHERE this = that")->fetch_object()->id; 

하지만, 원래의 코드

에 단축 할 수있다. 더 나은 쓰기 :

$query = $this->db->query("SELECT id FROM mytable WHERE this = that"); 
if (!$query) { 
    error_log('query() failed'); 
    return false; 
} 
$result = $query->fetch_object(); 
if (!$result) { 
    error_log('fetch_object() failed'); 
    return false; 
} 
$id  = $result->id;