Php $db未定义,即使声明为全局
因此,我声明一个PDOPhp $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
$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();
}
}