Php $db未定义,即使声明为全局

Php $db未定义,即使声明为全局,php,mysql,pdo,Php,Mysql,Pdo,因此,我声明一个PDO$db,如下所示: <?php $user = 'user'; $pass = 'pass'; try { $db = new PDO('mysql:host=localhost;dbname=dbname', $user, $pass); $db->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION ); } catch(PDOExce

因此,我声明一个PDO
$db
,如下所示:

<?php
    $user = 'user';
    $pass = 'pass';

    try {
        $db = new PDO('mysql:host=localhost;dbname=dbname', $user, $pass);
        $db->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION );
    } catch(PDOException $e) {
        echo '<h1>' . $e->getMessage() . '</h1>';
    }
?>

我有一个潜在错误,PHP PDO驱动程序没有在PHP.ini文件中取消注释


谢谢你的帮助

包含“getSnippets”的页面包括您实例化mysql连接的页面?

1)在PHP中,您不使用
+
连接字符串,而是使用
2)
$db
!==<代码>$DBH3)不要使用全局4)是另一个文件中的第二个代码吗?是否包含该文件?请尝试将其作为参数传递,而不是使用
global
。还要确保您的包含正确且有效。(简单的测试,在包含的文件中放置一个
echo“HERE”;
。如果您在页面上看到它,则不好)
getSnippets(NULL,1,1)
您是否将3个参数传递给只使用2定义的函数
function getSnippets($snippetID,$page)
-您可以这样做,但我希望看到类似于
func\u get\u args()
的内容,如果是这样的话。。。您没有无意中将
$db
的第一个参数作为
NULL
传入,是吗?
function getSnippets($snippetID, $page) {
        global $db;
        try {
            $SQL = $db->prepare('SELECT * FROM snippets WHERE id=:snippetID ORDER BY id LIMIT 10, :page');
            $SQL->setFetchMode(PDO::FETCH_ASSOC); // Set mode to fetch associative array
            $SQL->execute(array(
                ':snippetID' => $snippetID,
                ':page' => $page
            ));
            $result = $SQL->fetchALL(PDO::FETCH_ASSOC);
            return $result;
        } catch (PDOException $e) {
            echo $e->getMessage();
        }
    }