我正在使用我使用PDO查询的MS Access数据库的系统。当我使用基本的XAMPP安装运行它时,我构建的内容有效。
一旦我将其上传到网络服务器,我发现它无法正常工作,页面根本无法加载,没有错误日志或其他任何内容。我尝试对其进行故障排除,发现只要我注释掉bindParam行,脚本就会运行并显示我的字段数不正确。
我做了一个具有相同行为的简化测试用例:
try {
$db = new PDO("odbc:{$database};UID={$user};PWD={$password};charset=utf8;");
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$select = $db->prepare("SELECT * FROM customer WHERE customer.id = :id");
$id = NULL;
$select->bindParam(":id", $id, PDO::PARAM_INT);
$id = 1;
$select->execute();
$result = $select->fetchAll();
foreach ( $result as $row ) {
var_dump ( $row );
echo '<br>';
}
} catch(PDOException $e){
echo "The query has failed: " . $e->getMessage();
die();
}
一旦我注释掉$select->bindParam(":id", $id, PDO::PARAM_INT);
脚本实际上运行并给我一个合乎逻辑的错误。
我已经完成了一些基本的故障排除工作,例如检查PHP等版本,我发现没有任何区别。我已经找了几天的解决方案而且没有运气。
启用error_reporting(E_ALL);
后我得到的错误:
PHP Warning: PHP Startup: Unable to load dynamic library 'c:/wamp/bin/php/php5.5.12/ext/php_sqlsrv_55_ts.dll' - %1 is not a valid Win32-application.
in Unknown on line 0
PHP Warning: PHP Startup: Unable to load dynamic library 'c:/wamp/bin/php/php5.5.12/ext/php_pdo_sqlsrv_55_ts.dll' - %1 is not a valid Win32-application.
in Unknown on line 0