无法在函数外检索PDO结果

时间:2013-11-18 16:44:55

标签: php function pdo

可能是睡眠不足的产物,但我无法弄清楚这一点,我此时已经进行了很长时间的实验和搜索,所以我现在能做的就是寻求帮助。

我有很多页面使用来自数据库的数据并且压缩代码我想在函数中包含数据库:

function dbh($sql, $arr){
    global $dbh;
    $stm = $dbh->prepare($sql);
    $stm->execute($arr);
    $row = $stm->fetch();
    return $row;
}

但它不会为我返回任何东西。该功能在页面上调用如下:

 $row = dbh('SELECT * FROM ' . $pfx . '_user WHERE email = ? LIMIT 1', array($vld_fgt));


$usr = $row['user_id'];
$sup = $row['sign_up'];
$eml = $row['email'];

echo $usr;

我尝试过很多不同的东西,但却无法让它发挥作用。这是可能的,如果是的话,如何让它给我结果,以便我可以在函数之外使用它们?

1 个答案:

答案 0 :(得分:0)

问题是LIMIT / OFFSET需要一个整数。

默认情况下Manual($ db-> setAttribute(PDO :: ATTR_EMULATE_PREPARES,true);)将参数绑定为字符串值。

有两种解决方案

$db->setAttribute(PDO::ATTR_EMULATE_PREPARES, false);

$stm->bindValue(1, $$vld_fgt, PDO::PARAM_INT);