【问题标题】:Calling PDO query within a function在函数中调用 PDO 查询
【发布时间】:2012-12-23 18:59:39
【问题描述】:

我正在“世界末日”(mysql_ 贬值!)准备一些使用 mysql_ 扩展的旧应用程序。我目前正在将它们转换为 PDO。

我使用了很多函数来简化我的工作。但是我无法让函数中的 $db->query 工作。例如我正在转换这个函数:

function GetAccount($account_id){
    $Query = mysql_query("SELECT name, balance, account_number FROM accounts WHERE id = '$account_id'");
    if (mysql_num_rows($Query) > 0){
        $Result = mysql_fetch_assoc($Query);
        return $Result;
    } else {
        return false;
    }
}

进入这个 PDO 函数。

function GetAccount($account_id){
    global $db;
    $Result = $db->query("SELECT name, balance, account_number FROM accounts WHERE id = '$account_id'");
    if (count($Result) > 0){
        return $Result;
    } else {
        return false;
    }
}

我已经在这个函数之外建立了一个 PDO 连接,它适用于任何函数之外的查询。

第二个 (PDO) 函数的问题是 $Result 是空的。 var_dump 返回:bool (false)。

我忘记/做错了什么?

谢谢你:)

【问题讨论】:

  • 你好像忘了问问题。
  • 干杯 :) $Result 为空。
  • 如果将查询更改为: $Result = $db->query("SELECT name, balance, account_number FROM accounts WHERE id = " . $account_id ); --> 或者更好的是——使用准备好的语句...
  • 我已经测试了上面的代码并且它工作正常。错误必须在代码的不同部分。
  • @ethrbunny,当我使用你的代码时,我得到了这个数组:PDOStatement Object ([queryString] => SELECT name, balance, account_number FROM accounts WHERE id = 10)

标签: php pdo


【解决方案1】:

已修复,新功能:

function GetAccount($account_id){
    global $db;
    $Result = $db->prepare("SELECT name, balance, account_number FROM accounts WHERE id = '$account_id'");
$Result->execute();
$Result = $Result->fetch();

    if (count($Result) > 0){
        return $Result;
    } else {
        return false;
    }
}

我唯一做的就是:

$Result->prepare("query stuff");
$Result->execute();
$Result = $Result->fetch();

【讨论】:

    猜你喜欢
    • 2011-06-04
    • 2021-11-23
    • 2013-07-23
    • 1970-01-01
    • 2012-05-18
    • 1970-01-01
    • 2011-01-25
    • 1970-01-01
    相关资源
    最近更新 更多