2013-06-18 2 views
3

fetch_assoc 또는 fetch_array (MYSQLI_ASSOC)를 사용하려고하면 프로그램이 중단되고 오류 정보가 표시되지 않습니다 (error_reporting이 E_ALL로 변경되었습니다). fetch_array (MYSQLI_NUM) 또는 fetch_row()를 사용할 때. 이상한 일은 Wamp에서 내 프로그램을 실행할 수 있다는 것입니다. 하지만 수동으로 설치된 Apache + PHP + MYSQL 환경에서는 작동하지 않습니다. PHP 구성 문제 또는 MySQL 문제입니까?mysqli_fetch_assoc가 작동하지 않지만 mysqli_fetch_array (MYSQLI_NUM)이 작동합니다.

$studentId = $this->mydblink->real_escape_string($studentId); 
    $result = $this->mydblink->query("SELECT * FROM student WHERE id = '$studentId'"); 
    if($result->num_rows <= 0){ 
     $result->free(); 
     return null; 
    } 
    else{ 
     $returnValue = array(); 
     while($row = $result->fetch_assoc()){ 
      array_push($returnValue,$row); 
     } 
     $result->free(); 
     return $returnValue; 
    } 
+0

PHP는 문제가 될 가능성? – exussum

+1

열 이름이 무엇인지 아는 것이 흥미로울 것입니다. 어쩌면 PHP가 배열 첨자 값으로 대처할 수없는 이름을 가진 것이있을 것입니다. 가능성은 희박하지만, 이것이 내가 이것을 생각할 수있는 유일한 설명입니다. 또한'SELECT *'를'SELECT field1, field2, etc, etc'로 변경하면 어떻게 될까요? 그게 도움이 될지 궁금해? (어쨌든,'*'를하기보다는 쿼리에 필드 이름을 지정하는 것이 더 좋습니다. 따라서 어쨌든 좋은 일이 될 것입니다.) – Spudley

+0

아, PHP 및 MySQL 버전을 실행하고 있습니까? 관련성이있을 수 있습니다. 최신 릴리스가 아닌 경우 업데이트를 시도 했습니까? 또는 [릴리스 정보] (http://uk.php.net/releases/index.php)를 확인 하시겠습니까? 마지막으로, 최신 PHP 버전에서이를 안정적으로 재현 할 수 있다면 PHP 버그 추적기에보고해야합니다. – Spudley

답변

0

fetch_array()는 키와 값이있는 연관 배열을 만듭니다. fetch_assoc()에만 값이 있습니다.

테이블 이름의 개체를 만드는 fetch_object()를 사용할 수도 있습니다.

| id | category | name | 
---------------------------------- 
| 1 | 2, 5, 7, 28 | Will | 
---------------------------------- 
| 2 | 2, 9, 15, 18 | Drew | 

예 : 그 뒤로 점점 coulumn 이름이 무엇인지

$sql=mysqli_query($connect, "SELECT id, category, name FROM users"); 

$data=mysqli_fetch_array($sql); 
// 0=>id, 1=>category, 2=>name 
$data[1]; // is same like $data['category']; 
$data['category']; 

$data=mysqli_fetch_assoc($sql); 
$data['name']; 

$data=mysqli_fetch_object($sql); 
$data->name; 
$data->category; 
$data->id; 
관련 문제