2016-09-21 3 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_name, movie_year, movie_type, movie_leadactor, movie_director

но покажите мне дополнительную строку, как 0 => строка «Брюс Всемогущий» (длина = 14)

+4

'fetchAll (PDO :: FETCH_ASSOC);' –

ответ

2

Первым параметром fetchAll() является fetch_style которого

Управляет содержимым возвращаемого массива, как описано в PDOStatement :: fetch(). По умолчанию значения PDO :: ATTR_DEFAULT_FETCH_MODE (который по умолчанию PDO :: FETCH_BOTH)

Вот почему, когда вы var_dump($row);, вы получили оба numeric и associative формат данных в вашем array.You просто нужно установить $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;) –

+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

привет Ричарду. Нет, у меня есть несколько столбцов с именами (movie_name, movie_year, movie_type, movie_leadactor, и movie_director), я хочу знать, что такое 0 => string 'Bruce Almighty', потому что у меня нет столбца с нулевым именем (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

Привет Вирк, мой вопрос завершен в комментарии для Ричард, если вы знаете об этом, пожалуйста, помогите мне. TNX –

Смежные вопросы