请教PDO为什么连接不下oracle
程序员文章站
2022-06-15 18:55:11
...
请问PDO为什么连接不上oracle
数据库环境Oracle 11g 64位 window server 2003
PHP环境:32位php,运行在windows XP上。
01.
02.try {
03.
04. $dbh = new PDO('oci:dbname=//172.30.1.39:1521/orcl;charset=utf8', 'scott','neusoft');
05.
06. foreach($dbh->query('SELECT * from test') as $row) {
07. print_r($row);
08. print("
");
09. }
10. $dbh = null;
11.} catch (PDOException $e) {
12. print "Error!: " . $e->getMessage() . "
";
13. die();
14.}
15.?>
错误:
01.Error!: SQLSTATE[HY000]: 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)
如果修改成
01.
02.try {
03.
04. $dbh = new PDO('oci:dbname=//172.30.1.39:1521/orcl', 'scott','neusoft');
05.
06. foreach($dbh->query('SELECT * from test') as $row) {
07. print_r($row);
08. print("
");
09. }
10. $dbh = null;
11.} catch (PDOException $e) {
12. print "Error!: " . $e->getMessage() . "
";
13. die();
14.}
15.?>
则报错:
01.Error!: SQLSTATE[]: pdo_oci_handle_factory: (ext\pdo_oci\oci_driver.c:579)
------解决方案--------------------
检查tnsnames.ora,listener.ora中,sqlnet.ora中,日志文件看看
------解决方案--------------------
前者是字符集名称错了
关键在于后者,你的 oci 版本是否低于 oracle 版本?
数据库环境Oracle 11g 64位 window server 2003
PHP环境:32位php,运行在windows XP上。
01.
02.try {
03.
04. $dbh = new PDO('oci:dbname=//172.30.1.39:1521/orcl;charset=utf8', 'scott','neusoft');
05.
06. foreach($dbh->query('SELECT * from test') as $row) {
07. print_r($row);
08. print("
");
09. }
10. $dbh = null;
11.} catch (PDOException $e) {
12. print "Error!: " . $e->getMessage() . "
";
13. die();
14.}
15.?>
错误:
01.Error!: SQLSTATE[HY000]: 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)
如果修改成
01.
02.try {
03.
04. $dbh = new PDO('oci:dbname=//172.30.1.39:1521/orcl', 'scott','neusoft');
05.
06. foreach($dbh->query('SELECT * from test') as $row) {
07. print_r($row);
08. print("
");
09. }
10. $dbh = null;
11.} catch (PDOException $e) {
12. print "Error!: " . $e->getMessage() . "
";
13. die();
14.}
15.?>
则报错:
01.Error!: SQLSTATE[]: pdo_oci_handle_factory: (ext\pdo_oci\oci_driver.c:579)
------解决方案--------------------
检查tnsnames.ora,listener.ora中,sqlnet.ora中,日志文件看看
------解决方案--------------------
前者是字符集名称错了
关键在于后者,你的 oci 版本是否低于 oracle 版本?
相关文章
相关视频
推荐阅读
-
请教PDO为什么连接不下oracle
-
php,pdo怎么连接oracle数据库
-
用plsql可以连接oracle但是用OCILogon连接不下oracle
-
用plsql可以连接oracle但是用OCILogon连接不下oracle
-
请教为什么PDO->construct这么耗时啊?
-
PHP5.3连接Oracle客户端及PDO_OCI模块的安装方法,php5.3pdo_oci
-
为什么server 2008r2 php 连接oracle 这么慢,使用起来卡顿几秒
-
pdo连接oracle读取数据,多条返回值中的Resource id怎样获取?
-
PHP5.3连接Oracle客户端及PDO_OCI模块的安装方法,php5.3pdo_oci_PHP教程
-
为什么连接不下远程桌面