Zend framework Zend_Auth:不工作,getDbSelect()为空
我的身份验证失败,当我尝试获取dbselect()时,什么也得不到。。。我做错了什么 class AuthController extends Zend_Controller_Action { protected $auth; public function init() { $db = $this->getInvokeArg("bootstrap")->getResource("db"); $this->auth = new Zend_Auth_Adapter_DbTable($db, 'users', 'username', 'password', 'md5(?)'); } public function loginAction() { if (isset($_POST["username"])) { $result = $this->auth ->setIdentity($this->getRequest()->getParam('username')) ->setCredential($this->getRequest()->getParam('password')); echo " > " . $this->auth->getDbSelect();die(); $result = $this->auth ->setIdentity($this->getRequest()->getParam('username')) ->setCredential($this->getRequest()->getParam('password')) ->authenticate(); if ($result->isValid()) { $this->_redirect("postLogin"); } } } 类AuthController扩展Zend\u控制器\u操作 { 受保护的$auth; 公共函数init() { $db=$this->getInvokeArg(“引导”)->getResource(“db”); $this->auth=new Zend\u auth\u Adapter\u DbTable($db,'users','username','password','md5(?); } 公共函数登录() { 如果(isset($_POST[“username”])){ $result=$this->auth ->setIdentity($this->getRequest()->getParam('username')) ->setCredential($this->getRequest()->getParam('password')); echo“>”$this->auth->getDbSelect();die(); $result=$this->auth ->setIdentity($this->getRequest()->getParam('username')) ->setCredential($this->getRequest()->getParam('password')) ->验证(); 如果($result->isValid()){ $this->_重定向(“postLogin”); } } } 更新1: 我也尝试过不使用MVC和MySQL,我更熟悉的是: // setup auto loading require_once 'Zend/Loader/Autoloader.php'; Zend_Loader_Autoloader::getInstance(); // setup db connection $db = new Zend_Db_Adapter_Pdo_Mysql(array( 'host' => '127.0.0.1', 'username' => 'root', 'password' => '', 'dbname' => 'learnZendAuth' )); // create authentication adapter $auth = new Zend_Auth_Adapter_DbTable($db, 'users', 'username', 'password', 'md5(?)'); // do login if request is posted if (isset($_POST) && !empty($_POST)) { // do authencation $result = $auth->setIdentity($_POST['username']) ->setCredential($_POST['password']) ->authenticate(); // check authentication valid if ($result->isValid()) { // login success echo "successfully logged in as: " . $result->getIdentity(); } else { // login fail echo "Zend framework Zend_Auth:不工作,getDbSelect()为空,zend-framework,zend-auth,Zend Framework,Zend Auth,我的身份验证失败,当我尝试获取dbselect()时,什么也得不到。。。我做错了什么 class AuthController extends Zend_Controller_Action { protected $auth; public function init() { $db = $this->getInvokeArg("bootstrap")->getResource("db"); $this->auth = new Zend_
"; print_r($result->getMessages()); echo " //设置自动加载 需要_once'Zend/Loader/Autoloader.php'; Zend_Loader_Autoloader::getInstance(); //设置数据库连接 $db=新的Zend_db_适配器_Pdo_Mysql(阵列)( “主机”=>“127.0.0.1”, '用户名'=>'根', '密码'=>'', “dbname”=>“learnZendAuth” )); //创建身份验证适配器 $auth=new Zend_auth_Adapter_DbTable($db,'users','username','password','md5(?); //如果请求已发布,请登录 如果(isset($\ U POST)和&!空($\ U POST)){ //作曲 $result=$auth->setIdentity($\u POST['username']) ->setCredential($\u POST['password'])) ->验证(); //检查身份验证是否有效 如果($result->isValid()){ //登录成功 echo“已成功登录为:”..result->getIdentity(); }否则{ //登录失败 回声“; 打印($result->getMessages()); 回声“; } }否则{ //请求未发布 //查看是否已登录 如果(Zend_Auth::getInstance()->hasIdentity()){ echo“已作为:”.Zend_Auth::getInstance()->getIdentity()登录; } } 我明白了 致命错误:未捕获异常 “Zend_Auth_Adapter_Exception”与 消息“将提供的参数 Zend_Auth_适配器_DbTable未能 请生成有效的sql语句 检查表名和列名是否存在错误 C:\Program文件中的有效性 (x86)\Zend\ZendServer\share\ZendFramework\library\Zend\Auth\Adapter\DbTable.php:414 堆栈跟踪:#0 C:\程序文件 (x86)\Zend\ZendServer\share\ZendFramework\library\Zend\Auth\Adapter\DbTable.php(306): Zend_Auth_Adapter_DbTable->_authenticateQuerySelect(对象(Zend_Db_Select)) 1 C:\Program Files(x86)\Zend\Apache2\htdocs\learnZf\index.php(23): Zend_Auth_适配器_DbTable->authenticate() 在C:\ProgramFiles(x86)\Zend\ZendServer\share\ZendFramework\library\Zend\Auth\Adapter\DbTable.php中抛出2{main} 在线414
尝试在is valid语句中移动getDbSelect, 我通常也用
为了获取用户信息,从未见过这个getDbSelect方法哦,我发现我做错了什么 第一次尝试时,我使用了Sqlite,它不支持md5(?)处理 第二次尝试时,我指定了错误的列名…名称与用户名$userInfo = $this->auth->getResultRowObject();