2016-01-27 2 views
0

Я пытаюсь получить значения из запроса mysql с использованием PDO ... он работает с одним столбцом, но мне нужно вернуть 2 столбца из запроса. Ниже приведен фрагмент кода, я сделал ...Оператор pdo для возврата более 1 столбца в php

try { 
     $conn = new PDO('mysql:host=localhost;dbname=****', 'root', '****'>setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); 
    } catch(PDOException $e) { 
     echo 'ERROR: ' . $e->getMessage(); 
    } 
    $sth = $conn->prepare("select distinct prod_url,ean from tab_nl where ean in (select ean1 from test_sku where sku='$sku') and prod_url like '%prijzen%'"); 
$sth->execute(); 

$urlsku = $sth->fetchAll(PDO::FETCH_COLUMN, 0); 
$urlean = $sth->fetchAll(PDO::FETCH_COLUMN, 1); 
echo $sku; 
echo $urlsku; 
echo $urlean; 

Он возвращает мне некоторые значения массива ... который я действительно не могу понять. Может кто-нибудь, пожалуйста, помогите мне в этом.

+0

Вы хотите получить 2 колонки или 2-й столбец? –

+0

@AniruddhaChakraborty ... 2 столбца – user3305327

+0

Вы также должны добавить результат массива, который поможет нам быстро решить –

ответ

0
$data = $sth->fetchAll(PDO::FETCH_ASSOC); 
echo $data[0]['prod_url']; 
echo $data[0]['ean']; 
0

Добавить LIMIT 2 в запросе, чтобы получить два набора результата :)

try { 
     $conn = new PDO('mysql:host=localhost;dbname=****', 'root', '****'>setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); 
    } catch(PDOException $e) { 
     echo 'ERROR: ' . $e->getMessage(); 
    } 
    $sth = $conn->prepare("select distinct prod_url,ean from tab_nl where ean in (select ean1 from test_sku where sku='$sku') and prod_url like '%prijzen%' LIMIT 2"); 
$sth->execute(); 

$urlsku = $sth->fetchAll(PDO::FETCH_ASSOC, 0); 
$urlean = $sth->fetchAll(PDO::FETCH_ASSOC, 1); 
print_r($urlsku); 
print_r($urlean); 
+0

Если вы не пропустите результаты, две строки не будут возвращены. Кроме того, [OP хотел * «2 столбца» *] (http://stackoverflow.com/questions/35044648/pdo-statement-to-return-more-than-1-column-in-php/35044933#comment57813567_35044648) , а не 2 строки в соответствии с их уточняющими комментариями. –

3

Если вы используете fetch() с PDO::FETCH_ASSOC стиль легко получить обе колонки:

while($row = $sth->fetch(PDO::FETCH_ASSOC) { 
    echo $row['prod_url']; 
    echo $row['ean']; 
} 

Поместив извлечение в цикле, все строки будут возвращены, и вы сможете ограничить их по мере надобности.

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