2016-09-21 53 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 –