如何在与DB进行pdo通信的函数内定义连接

时间:2010-05-16 16:28:47

标签: php mysql pdo

嘿伙计我刚开始尝试将我的查询结构转换为PDO,我遇到了一个奇怪的问题。当我在函数内调用pdo查询连接并且连接包含在函数外部时,连接变为未定义。谁知道我在做错了什么?我只是玩它,我的例子如下。

include("includes/connection.php");

function query(){
    $user='user';
$id='100';
$sql = 'SELECT * FROM users';
$stmt = $conn->prepare($sql);
$result=$stmt->execute(array($user, $id));

// now iterate over the result as if we obtained
// the $stmt in a call to PDO::query()
while($r = $stmt->fetch(PDO::FETCH_ASSOC))
{
echo "$r[username] $r[id] \n";
}
}
query();

1 个答案:

答案 0 :(得分:2)

你的function scope doesn't have access to the $conn variable, one way to work around this issues is by using globals。这是一个例子:

function query(){
    global $conn;
    // your code here...
}

搜索StackOverflow以获取 Singleton 工厂注册表依赖注入模式以获取其他更高级和更优雅的替代方案