2013-03-09 2 views
-1

출력 결과가 왜 이렇게되는지 설명하십시오. 왜 배열이 포함되어 있는지 알고 싶습니다. 프로그램에서 배열 단어를 볼 수 없습니다. 어떻게 이런일이 일어 났습니까? 어떻게하면 "1"만 출력 할 수 있을까요?Mysqli 코드 출력 설명

CODE :

if (!$mysqli->query("DROP TABLE IF EXISTS test") || 
!$mysqli->query("CREATE TABLE test(id INT)") || 
!$mysqli->query("INSERT INTO test(id) VALUES (1)")) { 
echo "Table creation failed: (" . $mysqli->errno . ") " . $mysqli->error; 
} 

if (!$mysqli->query("DROP PROCEDURE IF EXISTS p") || 
!$mysqli->query('CREATE PROCEDURE p() READS SQL DATA BEGIN SELECT id FROM test; SELECT id + 1 FROM test; END;')) { 
echo "Stored procedure creation failed: (" . $mysqli->errno . ") " . $mysqli->error; 
} 

if (!$mysqli->multi_query("CALL p()")) { 
echo "CALL failed: (" . $mysqli->errno . ") " . $mysqli->error; 
} 

do { 
if ($res = $mysqli->store_result()) { 
    printf("---\n"); 
    var_dump($res->fetch_all()); 
    $res->free(); 
} else { 
    if ($mysqli->errno) { 
     echo "Store failed: (" . $mysqli->errno . ") " . $mysqli->error; 
    } 
} 
} while ($mysqli->more_results() && $mysqli->next_result()); 
?> 

결과 : 난 그냥 단지 배열이 포함 된 이유를 알고 싶어 어쨌든 다른 출력을 삭제 한

--- 
array(3) { 
[0]=> 
array(1) { 
[0]=> 
string(1) "1" 
} 
} 

. 문서에 따라

답변

0

mysqli 년대의 반환 유형입니다. http://www.php.net/manual/en/mysqli-result.fetch-all.php의 문서에서 반환 값이 "결과 행을 포함하는 연관 또는 숫자 배열의 배열을 반환합니다."라는 것을 알 수 있습니다. 그래서 배열을 얻습니다. 가지고있는 것은 "1"의 값을 갖는 1 개의 값 (배열 내)을 갖는 1 행 (배열로서)입니다.