免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 4077 | 回复: 4
打印 上一主题 下一主题

请问PDO为什么连不上数据库 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2012-07-02 10:46 |只看该作者 |倒序浏览
本帖最后由 onunix 于 2012-07-02 10:47 编辑

数据库环境racle 11g 64位  window server 2003
PHP环境:32位php,运行在windows XP上。
  1. <?php
  2. try {
  3.    
  4.     $dbh = new PDO('oci:dbname=//172.30.1.39:1521/orcl;charset=utf8', 'scott','neusoft');

  5.     foreach($dbh->query('SELECT * from test') as $row) {
  6.         print_r($row);
  7.         print("<hr>");
  8.     }
  9.     $dbh = null;
  10. } catch (PDOException $e) {
  11.     print "Error!: " . $e->getMessage() . "<br/>";
  12.     die();
  13. }
  14. ?>
复制代码
报的错误:
  1. 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)
复制代码
如果修改成
  1. <?php
  2. try {
  3.    
  4.     $dbh = new PDO('oci:dbname=//172.30.1.39:1521/orcl', 'scott','neusoft');

  5.     foreach($dbh->query('SELECT * from test') as $row) {
  6.         print_r($row);
  7.         print("<hr>");
  8.     }
  9.     $dbh = null;
  10. } catch (PDOException $e) {
  11.     print "Error!: " . $e->getMessage() . "<br/>";
  12.     die();
  13. }
  14. ?>
复制代码
则报错:
  1. Error!: SQLSTATE[]: pdo_oci_handle_factory: <> (ext\pdo_oci\oci_driver.c:579)
复制代码

论坛徽章:
0
2 [报告]
发表于 2012-07-03 11:22 |只看该作者
没用过oracle。。

论坛徽章:
0
3 [报告]
发表于 2012-07-03 18:19 |只看该作者
好久以前用过oracle,没遇到过这种错误 ,看下oracle扩展什么的都装对了没,

论坛徽章:
0
4 [报告]
发表于 2012-07-07 14:34 |只看该作者
貌似pdo_oci驱动中的字符集问题,重新配置php_oci 驱动,检查oracle中设置的字符集类型

论坛徽章:
1
2015年迎新春徽章
日期:2015-03-04 09:55:28
5 [报告]
发表于 2012-07-09 11:13 |只看该作者
回复 1# onunix


    貌似是编码问题,我记得 以前用orcale只能用utf8,而且在安装oracle的时候就需要指定。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP