可能很简单,请原谅。
在我的页面顶部,我添加了一个文件:
<?
require("common.php");
?>
稍后在我的代码中,我执行以下操作:
$stmt = $db->prepare($query);
$result = $stmt->execute();
$result = $stmt->fetchAll();
(数据库连接文件在我的包含文件中)。
这很好,直到我尝试使代码成为一个函数例如:如果我做
function doAQuery(){
$stmt = $db->prepare($query);
$result = $stmt->execute();
$result = $stmt->fetchAll();
}
找不到db详细信息。请有人解释一下原因吗?
答案 0 :(得分:2)
这不是语法问题。您的$db
和$query
变量不适用于您的功能范围。您可以通过将global $db, $query
声明为函数的第一行来使它们可用。
答案 1 :(得分:2)
这是因为$db
是一个全局变量。 PHP在函数范围内忽略它,除非你明确声明应该使用它。
function doAQuery() {
global $db;
$stmt = $db->prepare($query);
$result = $stmt->execute();
$result = $stmt->fetchAll();
}
看看variables scope在PHP中是如何工作的。
答案 2 :(得分:0)
将查询字符串传递给函数,
function doAQuery($query){