0

在一个文件中,我连接到数据库(使用 PDO),生成的连接称为 $db,因此我运行的查询类似于

$db->query("SELECT money FROM bank_accounts");

但是,如果我将该行放入函数中,则 $db 未定义,因此它不起作用。

显然,在每个函数中重新连接到数据库并不是在函数中完成 db 调用的最佳方法,所以我将如何完成类似的事情

function stealMoney($acctID) {
    $db->query("SELECT money FROM bank_accounts WHERE accountID = $acctID");
}
4

1 回答 1

0

你需要$db在一个函数中使用。

而且它没有在函数中定义,所以绝对$db是函数体无法访问/未定义的。

有两种处理方式:

1)$db作为参数传递给函数。

因此,函数体变为:

function stealMoney($acctID, $db = NULL) {
 $db->query("SELECT money FROM bank_accounts WHERE accountID = $acctID");
}

和函数调用:

stealMoney($acctID, $db);

2) 使用global:在这种情况下,您可以将$db其用作全局.

因此,函数体变为:

function stealMoney($acctID) {
 global $db;
 $db->query("SELECT money FROM bank_accounts WHERE accountID = $acctID");

这样,您的函数将从外部读取此变量并可以访问它。

于 2013-10-10T04:36:04.203 回答