PDO:使用'PHP 5.3'直接获取第一个值

时间:2016-06-09 13:27:45

标签: php pdo

现在我正在使用此代码:

global $dbh;

$sql = "SELECT filename FROM t_item where id=".$id;
$req = $dbh->query($sql)->fetch();
$file = $req['filename'];

使用:PHP 5.3

我需要重复多次,是否可以直接获取值而不将其传递给$ req?

2 个答案:

答案 0 :(得分:1)

要获得第一个值,请使用 fetchColumn() 而不是fetch(),因为它只返回结果集下一行的单个列

$sql = "SELECT filename FROM t_item where id=".$id;
echo $dbh->query($sql)->fetchColumn();

更好地使用bindParam来防止它形成sql注入

$sql = "SELECT filename FROM t_item where id= :id";
$stmt = $dbh->prepare($sql);
$stmt->bindParam(':id', $id, PDO::PARAM_INT);
$stmt->execute();
$stmt->fetchColumn();

答案 1 :(得分:-1)

将这些例程封装到一个函数中,您可以随时在脚本中的任何位置调用该函数,如下所示:

    <?php

        function getFilename($id){
            global $dbh;
            $sql = "SELECT filename FROM t_item where id=".$id;
            $file =$dbh->query($sql)->fetchColumn();
            return $file;
        }

        echo getFilename(2);  // ECHOES THE FILENAME FOR THE ENTITY WITH ID=2