在一个文件中,我连接到数据库(使用 PDO),生成的连接称为 $db,因此我运行的查询类似于
$db->query("SELECT money FROM bank_accounts");
但是,如果我将该行放入函数中,则 $db 未定义,因此它不起作用。
显然,在每个函数中重新连接到数据库并不是在函数中完成数据库调用的最佳方法,那么我将如何完成类似的事情
function stealMoney($acctID) {
$db->query("SELECT money FROM bank_accounts WHERE accountID = $acctID");
}
最佳答案
您需要在函数中使用$db
。
并且它没有在函数中定义,所以绝对,$db
对于函数体来说是不可访问/未定义的。
有两种处理方法:
1) 将 $db
作为参数传递给函数。
因此,函数体变为:
function stealMoney($acctID, $db = NULL) {
$db->query("SELECT money FROM bank_accounts WHERE accountID = $acctID");
}
函数调用:
stealMoney($acctID, $db);
2) 使用全局
:
在这种情况下,您可以使用 $db
作为 global .
因此,函数体变为:
function stealMoney($acctID) {
global $db;
$db->query("SELECT money FROM bank_accounts WHERE accountID = $acctID");
这样,您的函数将从外部读取此变量并可以访问它。
关于php - 在函数中利用现有的数据库连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19286951/