2013-03-09 101 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的fetch_all返回一個數組。從http://www.php.net/manual/en/mysqli-result.fetch-all.php的文檔中,您可以看到返回值是「返回保存結果行的關聯或數組數組」。所以,你得到一個數組。你有什麼是1行(作爲一個數組)1值(在一個數組),值爲「1」。