PDO:使$dbh可用并跨所有php文件进行维护

PDO:使$dbh可用并跨所有php文件进行维护,php,javascript,mysql,pdo,Php,Javascript,Mysql,Pdo,看来我做不好。 基本上,使用了三个PHP文件:-login.PHP、testconnect.PHP和numrows.PHP php是第一次开始播放的主文件 login.php和testconnect.php都很好 numrows.php:- <?php global $dbh1; require_once "testconnect.php"; try { $stmt = $dbh1->prepare("select count(distinct mfg_code

看来我做不好。 基本上,使用了三个PHP文件:-login.PHP、testconnect.PHP和numrows.PHP php是第一次开始播放的主文件

login.php和testconnect.php都很好

numrows.php:-

<?php
global $dbh1;
require_once "testconnect.php";

try
    {  
    $stmt = $dbh1->prepare("select count(distinct mfg_code) from test");
    $stmt->execute();
}

catch(PDOException $err)
{
    $alertmsg = $err->getMessage();
    }

$num = $stmt->fetch("PDO::FETCH_ASSOC:");
$num = json_encode($num);

echo $num;
?>

apache的日志错误显示为“GET/testnumcards.php HTTP/1.1”500-。我在调试时再次遇到的错误是“NetworkError:500内部服务器错误”。
正确的方法是什么?

您的问题不是使$dbh可用,而是代码不一致和语法错误。
至少这样做你的文件,没有所有无用和错误的代码

<?php
require_once "testconnect.php";
$stmt = $dbh1->prepare("select count(distinct mfg_code) from test");
$stmt->execute();
$num = $stmt->fetch(PDO::FETCH_ASSOC); // note the proper syntax
$num = json_encode($num);
echo $num;

您正在查看错误的日志文件。您需要错误日志,而不是访问日志更好的是,通过终端运行php文件<代码>user@host$php numrows.php
$alertmsg去哪里了?看起来您显然是在堵住实际的错误消息
$stmt->fetch(“PDO::fetch_ASSOC:”)
应该是
$stmt->fetch(PDO::fetch_ASSOC)
。另外,您的
$stmt
尝试{}
块之外是无法访问的。哦,对我自己感叹。。。一整天都在看代码,毫无头绪!谢谢