使用PDO从数据库中选择数据

时间:2014-02-18 14:47:56

标签: php mysql select pdo

我在mysql数据库中有一些数据。每次数据库都包含不同的行数。

我的表的一个例子是:

id  team1  team2  home  away  tip
----------------------------------
12   xxx    yyy   zzz   kkk
43   xxx    yyy   zzz   kkk
.     .      .     .     .
.     .      .     .     .

所以我需要做的是循环遍历表的每一行,并能够从该行获取数据,以便我可以创建提示。

我对如何用pdo做到这一点感到困惑。

到目前为止我尝试过尝试获取这样的数据列:

$stmt = $db->prepare("SELECT id FROM tablename");
    $stmt->execute();
    $result=$stmt->fetchColumn();
    echo $result[0];

但即便如此,我希望能给我回复第一个ID,在这种情况下是12,只返回我1.这里有任何想法吗?

5 个答案:

答案 0 :(得分:1)

$stmt = $db->prepare("SELECT id FROM tablename");
try{
    $stmt->execute();
}catch(PDOException $err){
    //some logging function
}
//loop through each row
while($result=$stmt->fetch(PDO::FETCH_ASSOC)){
    //select column by key and use
    echo $result['id'];
} 

或者您可以使用fetchAll将整个数据集选择为变量。那你就不需要循环

这是PDO的有用资源:

http://wiki.hashphp.org/PDO_Tutorial_for_MySQL_Developers

答案 1 :(得分:0)

$getUsers = $DBH->prepare("SELECT * FROM tablename ORDER BY id ASC");
$getUsers->execute();
$users = $getUsers->fetchAll();

可能会帮助你

答案 2 :(得分:0)

尝试打印没有索引的结果

$stmt = $db->prepare("SELECT id FROM tablename ORDER BY id ASC");
$stmt->execute();
$result = $stmt->fetchColumn();
echo $result;

答案 3 :(得分:0)

使用fetch(使用FETCH_NUM)代替fetchColumn

$stmt = $db->prepare("SELECT id FROM tablename");
    $stmt->execute();
    $result=$stmt->fetch(PDO::FETCH_NUM);
    echo $result[0];

答案 4 :(得分:0)

如果你想循环,你可以使用while循环 以下是示例

<?php 

$stmt =("SELECT id FROM tablename");
$result=$db->prepare($stmt );
$result->execute();
while($row = $result->fetch(PDO::FETCH_ASSOC))
{
$id = $row['id'];
 echo $id;
}
?>