在一个文件中,我连接到数据库(使用PDO),结果连接称为$ db,因此我运行的查询将类似于
$db->query("SELECT money FROM bank_accounts");
但是,如果我将该行放在函数中,则未定义$ db,因此它不起作用。
显然,在每个函数中重新连接到数据库不是在函数中完成db调用的最佳方法,那么我将如何完成类似
的操作function stealMoney($acctID) {
$db->query("SELECT money FROM bank_accounts WHERE accountID = $acctID");
}
答案 0 :(得分: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
用作global。
因此,函数体变为:
function stealMoney($acctID) {
global $db;
$db->query("SELECT money FROM bank_accounts WHERE accountID = $acctID");
因此,您的函数将从外部读取此变量并可以访问它。