请问PDO为什么连不上数据库
本帖最后由 onunix 于 2012-07-02 10:47 编辑数据库环境:oracle 11g 64位window server 2003
PHP环境:32位php,运行在windows XP上。<?php
try {
$dbh = new PDO('oci:dbname=//172.30.1.39:1521/orcl;charset=utf8', 'scott','neusoft');
foreach($dbh->query('SELECT * from test') as $row) {
print_r($row);
print("<hr>");
}
$dbh = null;
} catch (PDOException $e) {
print "Error!: " . $e->getMessage() . "<br/>";
die();
}
?>
报的错误:Error!: SQLSTATE: OCIEnvNlsCreate: Check the character set is valid and that PHP has access to Oracle libraries and NLS data (ext\pdo_oci\oci_driver.c:558)如果修改成<?php
try {
$dbh = new PDO('oci:dbname=//172.30.1.39:1521/orcl', 'scott','neusoft');
foreach($dbh->query('SELECT * from test') as $row) {
print_r($row);
print("<hr>");
}
$dbh = null;
} catch (PDOException $e) {
print "Error!: " . $e->getMessage() . "<br/>";
die();
}
?>则报错:Error!: SQLSTATE[]: pdo_oci_handle_factory: <> (ext\pdo_oci\oci_driver.c:579) 没用过oracle。。 好久以前用过oracle,没遇到过这种错误 ,看下oracle扩展什么的都装对了没, 貌似pdo_oci驱动中的字符集问题,重新配置php_oci 驱动,检查oracle中设置的字符集类型 回复 1# onunix
貌似是编码问题,我记得 以前用orcale只能用utf8,而且在安装oracle的时候就需要指定。
页:
[1]