使用PHP PDO获取单个记录并返回结果

时间:2016-02-20 10:36:46

标签: php pdo

如何在自定义php函数中获取所有列的单行并返回结果

这是我的自定义功能代码

function getdata($sql,$dbh)
 {

    $result=$dbh->prepare($sql);
    $res=$result->fetchAll(PDO::FETCH_ASSOC);
   // var_dump($res);
    return $res; 
 }

不工作......?

2 个答案:

答案 0 :(得分:2)

您没有执行查询?!

$dbh = new PDO("connection string"); 
$get_row = $dbh->prepare($sql); 
$get_row->execute(); 
$row = $get_row->fetch();

尝试使用此方法获取所有列的单行。

答案 1 :(得分:1)

让我建议你稍微改变这种方法,使其更加灵活。

  • 首先,您必须使此功能接受包含execute()数据的数组。否则,使用prepare或PDO就没有任何意义。
  • 然后,让你的函数返回语句。这将使其非常灵活

因此,请将代码更改为此

function getdata($dbh, $sql, $params = NULL)
{
    $stmt = $dbh->prepare($sql);
    $stmt->execute($params)
    return $stmt; 
}
这样你就可以获取任何一条记录。

$row = getdata($dbh, $sql)->fetch();

或多行

$row = getdata($dbh, $sql)->fetchAll();

甚至可以运行插入或更新您根本无法获取的查询。