首页 | 新闻 | 交流 | 问吧 | 文档 | 手册 | 下载 | 博客

收藏此问题 发表新评论

使用Zend_Auth_Adapter_DbTable出错

错误消息:
The supplied parameters to Zend_Auth_Adapter_DbTable failed to produce a valid sql statement, please check table and column names for validity

使用的代码:
[code]
        //利用Zend_Auth的适配器设置和数据库相关的一些东西
        Zend_Loader::loadClass('Zend_Auth_Adapter_DbTable');
        $dbAdapter = Zend_Registry::get('dbAdapter');
        $authAdapter = new Zend_Auth_Adapter_DbTable($dbAdapter);
        $authAdapter->setTableName('YC_MANAGERS');
        $authAdapter->setIdentityColumn('MNG_LOGIN');
        $authAdapter->setCredentialColumn('MNG_PASS');
[code]

说表名和字段有问题,可是明明没有问题的啊!
昵称: kekydream  时间: 2007-08-23 20:46:00
忘了说了,zend版本1.0,数据库oracle10g
昵称: kekydream  时间: 2007-08-23 20:49:00
很明显 你的'YC_MANAGERS'应该是前面define的值吧?
但是,既然是define定义了,为什么加引号呢?
错误提示的已经够清楚了。
昵称: qqinxl  时间: 2007-08-24 21:19:00
晕,那是数据库表名,不是define,手册上给的例子都是这样写的.换用mysql数据库就没这样的问题了,看来zf对oracle支持的不好.
昵称: kekydream  时间: 2007-08-26 10:23:00
The supplied parameters to Zend_Auth_Adapter_DbTable failed to produce a valid sql statement.

不知道你对 oracle 了解多少,但是显然,你没有指定表空间名~~~
不指定表空间名,那就需要在用户空间内访问~~~

Zend_Db 对 oracle 支持是相当好的~~
昵称: mikespook  时间: 2007-08-26 14:15:00
表空间名?看来我真是对Oracle了解的太少了啊。。。真不好意思这么久才看到mike的回复。。。
昵称: kekydream  时间: 2007-09-05 11:21:00
不是你的错。
是 ZF 的 bug.
解决方法请参考: http://www.phpchina.com/78/viewspace_27564.html
昵称: dennis  时间: 2008-02-21 16:09:00
这个是zf的bug,我昨天也遇到这个问题。

现在使用了zf 1.5 preview 里的 Auth/Adapter/Dbtable.php 替换后,问题就解决了。
昵称: 菜刀  时间: 2008-02-24 11:47:00