2015-06-02 3 views
2

Im работает над небольшим PHP-проектом и им изменяет с MySQLi на PDO, im также использует готовые заявления сейчас.Как получить результаты запроса как массив в PDO?

Мне удалось подключиться к базе данных и выполнить запрос, но я хочу знать, как я могу получить результаты в виде массива?

Я использую функцию fetch_assoc() в MySQLi для этого, но теперь я использую PDO и подготовленные инструкции, я не знаю, как это сделать.

Мой код до сих пор ...

$res = $connection -> prepare("SELECT * FROM ad WHERE id = :id"); 
    $res -> bindValue(':id',$id); 
    $res -> execute(); 

Я слышал, используя этот код, но он не работает?

$z= $res -> fetchAll(PDO::FETCH_ASSOC); 
    $productname = $z['productname']; 
+0

fetchALL возвращает массив результирующих данных с индексом 0 - n. И вы можете использовать этот ключ, как 'productname'. – Vijay

ответ

1

$z теперь многомерный массив, и как таковые, если вы хотите получить доступ к первому ряду, вы могли бы просто явно доступ нулевого индекса:

echo $z[0]['productname']; 

Это должно выглядеть примерно так :

Array 
(
    [0] => Array // index zero 
     (
      [id] => 1 
      [productname] => productname 1 // sub index 
     ) 
     // $z[0]['productname'] 
    [1] => Array 
     (
      [id] => 2 
      [productname] => productname 2 
     ) 
     // $z[1]['productname'] 
    [2] => Array 
     (
      [id] => 3 
      [productname] => productname 3 
     ) 
     // $z[2]['productname'] 
) 

Если вы хотите получить доступ все наборы строк, просто использовать старый добрый»foreach:

foreach($z as $row) { 
    echo $row['productname']; 
} 
+0

Спасибо! Это сработало отлично :) –

+0

@HarisMahmood уверен, рад, что это помогло – Ghost

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