2009-08-20 17 views
1

それで基本的なチュートリアルに従ってください。 Zend 1.8を使用していますが、Zend_Auth_DBを使用しているときはこの例外が発生し続けます。任意のアイデアは、テーブルには1つだけの行があります。Zend_Auth:DBテーブル構造

Exception information: 

Message: The supplied parameters to Zend_Auth_Adapter_DbTable failed to produce a valid sql statement, please check table and column names for validity. 

Stack trace: 

#0 C:\projects\BHAA_ZEND\library\Zend\Auth\Adapter\DbTable.php(306): Zend_Auth_Adapter_DbTable->_authenticateQuerySelect(Object(Zend_Db_Select)) 
#1 C:\projects\BHAA_ZEND\library\Zend\Auth.php(117): Zend_Auth_Adapter_DbTable->authenticate() 
#2 C:\projects\BHAA_ZEND\application\controllers\LoginController.php(79): Zend_Auth->authenticate(Object(Zend_Auth_Adapter_DbTable)) 
#3 C:\projects\BHAA_ZEND\application\controllers\LoginController.php(38): LoginController->getAuthAdapter(Array) 
#4 C:\projects\BHAA_ZEND\library\Zend\Controller\Action.php(512): LoginController->processAction() 
#5 C:\projects\BHAA_ZEND\library\Zend\Controller\Dispatcher\Standard.php(288): Zend_Controller_Action->dispatch('processAction') 
#6 C:\projects\BHAA_ZEND\library\Zend\Controller\Front.php(945): Zend_Controller_Dispatcher_Standard->dispatch(Object(Zend_Controller_Request_Http), Object(Zend_Controller_Response_Http)) 
#7 C:\projects\BHAA_ZEND\library\Zend\Application\Bootstrap\Bootstrap.php(77): Zend_Controller_Front->dispatch() 
#8 C:\projects\BHAA_ZEND\library\Zend\Application.php(328): Zend_Application_Bootstrap_Bootstrap->run() 
#9 C:\projects\BHAA_ZEND\public\index.php(33): Zend_Application->run() 
#10 {main} 

ここに違反コードがあります。

public function getAuthAdapter(array $params) 
{ 
    $dbAdapter = Zend_Db_Table::getDefaultAdapter(); 
    $authAdapter = new Zend_Auth_Adapter_DbTable($dbAdapter); 

    $authAdapter->setTableName('login') 
       ->setIdentityColumn('username') 
       ->setCredentialColumn('password'); 
       //->setCredentialTreatment('MD5(?)'); 
    // pass to the adapter the submitted username and password 
    $authAdapter->setIdentity($username)->setCredential($password); 

    $auth = Zend_Auth::getInstance(); 
    $result = $auth->authenticate($authAdapter); 
    if ($result->isValid()) { 
       // success : store database row to auth's storage system 
       // (not the password though!) 
       $data = $authAdapter->getResultRowObject(null, 'password'); 
       $auth->getStorage()->write($data); 
       //$this->_redirect('/'); 
       return $this->_helper->redirector('index','index'); 
      } else { 
       // failure: clear database row from session 
       $this->view->message = 'Login failed.'; 
       return $this->render('index'); 
      } 
    return $result; 
} 

Zend_Auth_Adapter_DbTableのドキュメントを読んだことはありますか? - はい、しかし、私はそれがクリアされているかわかりません。

データベースに有効な接続がありますか? - うん、同じDB設定のCRUDアプリがあります。

あなたのユーザーテーブルの構造は何ですか? -

Zend_Auth_Adapter_DbTableのコンストラクタにidentityとcredentialの列を正しく指定しましたか? - 上記のコードを参照してください、私はそう信じています。

また、認証しようとしているユーザー名/パスワードも指定しましたか? - そうです、これらの変数を送信するZendフォームがあります。

エラーの原因となっているSQLクエリは何ですか?私はこれがそれだと思う。

SELECT `isp_partners_view`.*, (CASE WHEN `password` = '*****' THEN 1 ELSE 0 END) AS `zend_auth_credential_match` FROM `isp_partners_view` WHERE (`username` = '*****') 
+2

あなたは、いくつかのより多くの情報を投稿してもらえますか? Zend_Auth_DBで何の呼び出しをしていますか? – Breakthrough

+0

このエラーは解決しましたか?根本原因と解決策は何でしたか? –

答えて

4

あなたがエラーを与えているが、私はこれをトラブルシューティングしようとお願いしたい他の質問の数があります

  • あなたはZend_Auth_Adapter_DbTableのドキュメントを読んでいますか?

  • データベースに有効な接続がありますか?

  • usersテーブルの構造は何ですか?

  • IDと資格情報の列をコンストラクタZend_Auth_Adapter_DbTableに正しく指定しましたか?

  • また、認証しようとしているユーザー名/パスワードも指定しましたか?

  • エラーの原因となっているSQLクエリは何ですか?あなたは、クエリをこのように表示することができます。

    $select = $authAdapter->getDbSelect(); 
    print $select . "\n"; 
    
関連する問題