使用PDO返回一组值而不是数组

时间:2014-09-23 09:40:01

标签: php mysql pdo

这个网站上一个非常好的人帮助我使用了以下脚本(并且它起了作用)

<?php
$db = new PDO('mysql:host=HOST;dbname=DATABASE', $user, $pass);

$stmt = $db->prepare('
    SELECT
        yeast,
        rating,
        description,
        weblink,
        image,
        sideimage 
    FROM dowdb_yeast_selector 
    WHERE
        fruit = :fruit
    ORDER BY
        rating DESC
');

$stmt->bindParam(':fruit',$_POST['fruit'],PDO::PARAM_STR,50);

$stmt->execute();

如何仅回显侧面图像(不作为while循环的一部分)?

我认为(?)我需要像echo '$row[sideimage]'这样的东西//我有多么简单

到目前为止,我所看到的所有例子都不符合我的需要: - (

3 个答案:

答案 0 :(得分:0)

例如,使用PDO :: fetchAll;

$stmt->execute();
$arrResults = $stmt->fetchAll();

//$arrResults will be multidimensional
//This will echo the first sideimage
echo $arrResults[0]['sideimage'];

如果你想回显sideimage的所有值(即:所有行),你必须遍历结果;

foreach($arrResults as $arrRow) {
   echo $arrRow['sideimage'] . PHP_EOL;
}

链接

答案 1 :(得分:0)

您应该使用循环pdo::fetch()

while($abc = $stmt->fetch())
{
  print_r($abc);
}

如果您不想使用循环试试pdo::fetchAll()

$data = $stm->fetchAll();

答案 2 :(得分:0)

您可以使用FETCH_ASSOC

$res = $stmt->fetchAll(PDO::FETCH_ASSOC);


echo $res[0]['sideimage'];

foreach($res as $key=>$value) {
    $image_val = $value['sideimage'];
}