Php 在函数中访问$pdo
我想使用函数从数据库中选择不同的数据。不幸的是,我无法访问函数中的Php 在函数中访问$pdo,php,function,pdo,Php,Function,Pdo,我想使用函数从数据库中选择不同的数据。不幸的是,我无法访问函数中的$pdo。以下是更好理解的代码: config.php ... $pdo = new PDO("mysql:host=$host;dbname=$database", $user, $password); select.php include 'config.php'; function abc($sql) { $stmt = $pdo->prepare($sql); $stmt->bindPara
$pdo
。以下是更好理解的代码:
config.php
...
$pdo = new PDO("mysql:host=$host;dbname=$database", $user, $password);
select.php
include 'config.php';
function abc($sql) {
$stmt = $pdo->prepare($sql);
$stmt->bindParam(':name', $name);
$stmt->execute();
}
$sql = "SELECT a FROM table WHERE b = :name";
abc($sql);
$sql = "SELECT a FROM table WHERE c = :name";
abc($sql);
错误:
在null上调用成员函数prepare()
如果我将config.php放入函数中,它会像一个符咒一样工作。您可以将
$pdo
声明为全局,或者将其作为第二个参数传递给abc
。这有什么问题吗?当然不是,PHP变量不是全局的,不能用函数访问,除非用global
关键字在内部“导入”。请参考PHP文档。但是我应该可以使用$GLOBALS['pdo']访问$pdo?或者更好,我如何将$pdo也传递给函数?使用abc($sql,$pdo)不起作用。如果它不起作用,我想您的$pdo
var初始化不正确。它起作用了,我不知道我以前做过什么;)。将$pdo传递给函数应该是一个很好的解决方案,对吗?这里有一个规范:@billKarwin您可以添加它吗?我已经重新打开了这个问题,但我现在不能重新投票关闭。请将这一问题作为议程的副本进行表决