在 Windows Server 2012 R2 和 PHP 5.6.4 上找不到 PDO
PDO Not Found on Windows Server 2012 R2 and PHP 5.6.4
我正在尝试在 Windows Server 2102 R2 运行 Apache 2.4.10 和 PHP 5.6.4 上使用 PDO 从脚本进行连接并得到错误 "Class 'PDO' not found" 尝试连接时。
这里是调用连接的代码
ini_set('display_errors', 'On');
require_once('c:/path/site_inc.php');
switch($_REQUEST['action']){
case 'getList':
getList();
break;
}
function getList(){
$dbh = dbConnect();
$pstmt = $dbh->prepare("SELECT * FROM announcements WHERE user=? ORDER BY startDate");
$pstmt->execute(array($_COOKIE['appsuname']));
echo json_encode($pstmt->fetchAll(PD0::FETCH_ASSOC));
}
function dbConnect(){
$DBH = new PDO(ccappConfig::mysqlDSN, ccappConfig::mysql_user, ccappConfig::mysql_pword);
return $DBH;
}
我已经通过以下方式进行测试以确保 PDO 可用
if(class_exists('PDO')){
echo "PDO Installed<br />";
} else {
echo "PDO NOT Installed<br />";
}
phpinfo();
此 returns "PDO Installed" 和 phpinfo() 确认 pdo_mysql 与 mysql(被淘汰)和 mysqli 一起安装。
我不确定为什么会产生这个错误,而且 php_pdo.dll 已经从 5.3 中删除 PHP 所以我不相信我错过了 driver 而且我也不要相信这是因为 phpinfo() 在 PDO 标题下返回 mysql 和 sqlite drivers 都已启用。
我在这里遗漏了什么,或者我遗漏的代码有什么问题吗?
我发现这里有错误
function getList(){
$dbh = dbConnect();
$pstmt = $dbh->prepare("SELECT * FROM announcements WHERE user=? ORDER BY startDate");
$pstmt->execute(array($_COOKIE['appsuname']));
echo json_encode($pstmt->fetchAll(PD0::FETCH_ASSOC));
}
上面的代码应该是
function getList(){
$dbh = dbConnect();
$pstmt = $dbh->prepare("SELECT * FROM announcements WHERE user=? ORDER BY startDate");
$pstmt->execute(array($_COOKIE['appsuname']));
echo json_encode($pstmt->fetchAll(PDO::FETCH_ASSOC));
}
第一个块是 0(零)而不是 O。
我正在尝试在 Windows Server 2102 R2 运行 Apache 2.4.10 和 PHP 5.6.4 上使用 PDO 从脚本进行连接并得到错误 "Class 'PDO' not found" 尝试连接时。
这里是调用连接的代码
ini_set('display_errors', 'On');
require_once('c:/path/site_inc.php');
switch($_REQUEST['action']){
case 'getList':
getList();
break;
}
function getList(){
$dbh = dbConnect();
$pstmt = $dbh->prepare("SELECT * FROM announcements WHERE user=? ORDER BY startDate");
$pstmt->execute(array($_COOKIE['appsuname']));
echo json_encode($pstmt->fetchAll(PD0::FETCH_ASSOC));
}
function dbConnect(){
$DBH = new PDO(ccappConfig::mysqlDSN, ccappConfig::mysql_user, ccappConfig::mysql_pword);
return $DBH;
}
我已经通过以下方式进行测试以确保 PDO 可用
if(class_exists('PDO')){
echo "PDO Installed<br />";
} else {
echo "PDO NOT Installed<br />";
}
phpinfo();
此 returns "PDO Installed" 和 phpinfo() 确认 pdo_mysql 与 mysql(被淘汰)和 mysqli 一起安装。
我不确定为什么会产生这个错误,而且 php_pdo.dll 已经从 5.3 中删除 PHP 所以我不相信我错过了 driver 而且我也不要相信这是因为 phpinfo() 在 PDO 标题下返回 mysql 和 sqlite drivers 都已启用。
我在这里遗漏了什么,或者我遗漏的代码有什么问题吗?
我发现这里有错误
function getList(){
$dbh = dbConnect();
$pstmt = $dbh->prepare("SELECT * FROM announcements WHERE user=? ORDER BY startDate");
$pstmt->execute(array($_COOKIE['appsuname']));
echo json_encode($pstmt->fetchAll(PD0::FETCH_ASSOC));
}
上面的代码应该是
function getList(){
$dbh = dbConnect();
$pstmt = $dbh->prepare("SELECT * FROM announcements WHERE user=? ORDER BY startDate");
$pstmt->execute(array($_COOKIE['appsuname']));
echo json_encode($pstmt->fetchAll(PDO::FETCH_ASSOC));
}
第一个块是 0(零)而不是 O。