2012-04-08 4 views
0

너무 혼란 스럽습니다.LIMIT가있는 MySQL은 작동하지 않습니다.

function fetchAllArray($assoc = MYSQL_ASSOC) { 
    while($rows=$this->result->fetch_array($assoc)) 
     $arr[]=$rows; 
    return $arr; 

} 

function getGalleries($limit = 0,$orderby = '`created` ASC, sort_id',$ordersort = 'DESC') { 

    $this->query("SELECT * FROM galleries WHERE status=1 ORDER BY ".$orderby." ".$ordersort." ".($limit==0 ? "" : " LIMIT ".$limit).";"); 
    $arr=$this->fetchAllArray(); 

    if(is_array($arr)) 
     return $arr; 
    else 
     return FALSE; 
} 

내가 그것을 호출 할 때처럼 : :이 코드가이 아무 것도 반환하지 않습니다

$this->getGalleries(300); 

!

정확한 쿼리를 phpmyadmin에서 테스트 할 때 결과가 나타납니다. 쿼리에서 LIMIT을 제거하면 작동합니다. LIMIT가 여기서 작동하지 않는 이유는 무엇입니까?

LIMIT에서는 localhost에서는 잘 작동하지만 서버에서는 작동하지 않습니다!

편집 : 방금 ​​서버에서 작동하지 않는 '생성 된'문자열이라는 것을 발견했습니다! 쿼리에서 created을 제거하면 서버에서 작동하지만 작동하지 않을 때 포함합니다! 어떻게 내 쿼리에 추가 할 수 있습니다!?

+0

무엇 실행됩니다 및 예상 결과를 반환하지 않습니다 정확한 쿼리? –

+0

$ arr 길이를 테스트하여 잘못된 점을 찾을 수 있습니다. – sarwar026

+0

엄마의 신! 방금 서버에서 작동하지 않는 '생성 된'문자열이라는 것을 알았습니다! 쿼리에서'created '를 제거하면 서버에서 작동합니다. 어떻게 내가 이것을 쿼리에 추가 할 수 있을까요? – m3hdi

답변

1

이것은 PHP 코드에서 오류 일 가능성이 높습니다. 있는 general_log에

전원을 켜고 실제로

set global general_log = 1; 
+0

나는 오류가 없다. localhost에서 잘 작동하는 쿼리! – m3hdi

2

이 함수는 매개 변수를 얻을 제로 기본 인수를하지 않는 것 같다 보내는 PHP를 볼 수 있습니다, 그래서 당신은 어떤 결과를 얻을 수 없습니다.

는 ... 쿼리가 잘 여부로 구성되어 있는지 확인하기 위해 쿼리의 실행 전에 인쇄 문을 넣어보십시오

+0

내가 출력 명령을받을 때 : 선택 * 갤러리에서 상태 = 1 ORDER BY 만든 ASC, sort_id DESC LIMIT 300; – m3hdi

+1

이렇게하면 한계가 변경됩니다. LIMIT 0,300 – aleroot

+0

방금 ​​LIMIT는 문제가 아니지만 'created'문자열이 발견되었습니다. 제거 할 때 서버에서 작동합니다. 서버 측의 MySQL 버전이 열 이름으로'created'을 수락하지 않는 것 같습니다!? – m3hdi