2012-04-19 4 views
1
public function suggest(){ 
$SQL = "SELECT CategoryName FROM tb_category WHERE CategoryName LIKE CONCAT('%', ?, '%')"; 
$stmt = $this->_db->mysqli->prepare($SQL); 
$stmt->bind_param("s", $this->querystring); 
$stmt->execute(); 
$meta = $stmt->result_metadata(); 
while($field = $meta->fetch_field()) 
    {  
    $parameters[] = &$row[$field->name]; 
    //print_r($parameters); 
    } 

while의는 여기준비된 명령문 while 루프 오류 PHP에서

같은 연산자에 문제 같아요 전체 테이블이없는하지 dB에서 단일 행을 확인 또 다시 일에 제공 -loop
+0

쿼리가 실행되기 전에 출력을 확인하여 두 번 확인한 다음 수동으로 실행하여 결과를 다시 확인하십시오 (PHPMyAdmin 또는 MySQL Workbench 등을 사용하여 결과를 다시 확인하십시오). 비슷한) – ManseUK

+1

나는이 것이 유용하다는 것을 의심 스럽다.'$ row'는 함수 범위에 정의조차되지 않았다. 전체 코드를 붙여 넣었습니까? 아니면 중요한 부분을 제거 했습니까? – Kaii

답변

1

그냥 확실하게 내가 잘 이해 :

while($field = $meta->fetch_field()) 
{  
$parameters[] = &$row[$field->name]; 
//print_r($parameters); 
} 

는 쿼리가 10 개 행을 반환 가정이 동안 10 번을 실행 하는가?

(&없이) 대신 &$row[$field->name];$row[$field->name];을 시도

마지막으로 당신이 당신의 쿼리를 입수해온 컬럼의 정의 fetch_field() 돌아갑니다. CategoryName 만 선택하면 CategoryName 열 정의 만 인쇄됩니다.