php - 在函数中利用现有的数据库连接

标签 php mysql function pdo

在一个文件中,我连接到数据库(使用 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/

相关文章:

php - 缩略图分页的想法

php - 我可以在 PDO SELECT 期间输入 "unsanitize"吗?

php - 如何验证输入是否具有 zf2 形式的浮点值?

mysql - 如果我们依赖语句中的索引扫描顺序,两个 InnoDB UPDATE 语句是否可以防止 PK 索引死锁?

function - Swift - 如何在函数的参数中传递带有参数的函数?

php - 在 select 子句中重用 Doctrine 别名

php - 按天登记出勤

php - 使用 PHP 从指纹设备获取数据

javascript - 访问渲染中从 react 函数返回的变量(在循环中)

c++ - 在 vector C++ 的矩阵中查找条目