2016-09-21 54 views
1

我不知道我的數組中有什麼意思。我找不到這個額外的行

我的代碼

try { 

    $conn=new PDO("mysql:host=localhost;dbname=moviesite","root",""); 
    $conn->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION); 

    $stmt=$conn->prepare("SELECT movie_name,movie_year,movie_type,movie_leadactor,movie_director 
          FROM movie 
          ORDER BY movie_name,movie_year"); 
    $stmt->execute(); 
    $result=$stmt->fetchAll(); 
    foreach ($result as $row) { 
    var_dump($row); 
    } 
} catch (PDOException $e) { 
echo $e->getmessage(); 
} 


**And my result** 

enter image description here

我的問題是

0 => string 'Bruce Almighty' (length=14) 
1 => string '2003' (length=4) 
. 
. 
. 

我只是movie_namemovie_yearmovie_typemovie_leadactor,012要求

但它告訴我喜歡0額外的行=>字符串「冒牌天神」(長度= 14)

+4

'fetchAll(PDO :: FETCH_ASSOC);' –

回答

2

fetchAll()第一個參數是fetch_style

編碼側進行

控制返回數組的內容,如 PDOStatement :: fetch()中所述。默認爲 PDO :: ATTR_DEFAULT_FETCH_MODE的值(默認爲PDO :: FETCH_BOTH)

這就是爲什麼當你var_dump($row);,你有你的array.You都numericassociative格式的數據只需要前設置$stmt->setFetchMode(PDO::FETCH_ASSOC);$stmt->execute();或使用$result = $stmt->fetchAll(PDO::FETCH_ASSOC)作爲關聯索引。

try { 

    $conn = new PDO("mysql:host=localhost;dbname=moviesite","root",""); 
    $conn->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION); 

    $stmt = $conn->prepare("SELECT movie_name,movie_year,movie_type,movie_leadactor,movie_director 
          FROM movie 
          ORDER BY movie_name,movie_year"); 
    //ADD BELOW LINE 
    $stmt->setFetchMode(PDO::FETCH_ASSOC); 
    $stmt->execute(); 

    //OR REPLACE BELOW LINE LIKE $result=$stmt->fetchAll(PDO::FETCH_ASSOC); 
    $result = $stmt->fetchAll(); 
    foreach ($result as $row) { 
    var_dump($row); 
    } 
} catch (PDOException $e) { 
echo $e->getmessage(); 
} 
+0

非常感謝Sunny Sunny) –

+0

@VOA R,不提,如果它適合你,很高興。 –

0

轉儲是給你有關陣列中的每個變量的信息。因此,字符的類型和數量。如果你只是想輸出它們。

foreach ($result as $row) { 
    echo $row['movie_name'].','. $row['movie_year'].','.$row['movie_type'].','.$row['movie_leadactor'].','.$row['movie_director'].'<br />'; 
} 
+0

嗨Richard。不,我有一些名稱列(movie_name,movie_year,movie_type,movie_leadactor,和movie_director),我想知道什麼是0 =>字符串'布魯斯全能',因爲我沒有任何名稱零(0)或1或2或3或4,這是什麼? –

-1

更改顯示的限制兒童的

; with sane limits 
xdebug.var_display_max_depth = 16 
xdebug.var_display_max_children = 400 
xdebug.var_display_max_data = 2048 


; with no limits 
; (maximum nesting is 1023) 
xdebug.var_display_max_depth = -1 
xdebug.var_display_max_children = -1 
xdebug.var_display_max_data = -1 

它還可與下面的

ini_set('xdebug.var_display_max_depth', 16); 
ini_set('xdebug.var_display_max_children', 400); 
ini_set('xdebug.var_display_max_data', 2048); 
+0

嗨Virk,我的問題在richard評論中完成,如果你知道這件事,請幫助我。 TNX –