现在我正在使用此代码:
global $dbh;
$sql = "SELECT filename FROM t_item where id=".$id;
$req = $dbh->query($sql)->fetch();
$file = $req['filename'];
使用:PHP 5.3
我需要重复多次,是否可以直接获取值而不将其传递给$ req?
答案 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