0

MySQL データベースから単一の値を取得しようとしていますが、Zend Framework を使用しています。application.iniこれは、データベース情報を保存するために使用するmy の一部です。

[production]
resources.db.adapter = PDO_MYSQL
resources.db.params.host = localhost
resources.db.params.username = root
resources.db.params.password = 
resources.db.params.dbname = accounts_db
resources.db.isDefaultTableAdapter = true

は次のBootstrap.phpとおりです。

class Bootstrap extends Zend_Application_Bootstrap_Bootstrap
{
    protected function _initDbRegister()
    {
        $db = $this->bootstrap('Db')->getResource('Db');
        $config = new Zend_Config((array('database'=>array('params'=>$db))));
        Zend_Registry::set('config',$config);
    }
}

データベースからデータを取得するために使用するコードを次に示します。

class User
{
    public function authenticate()
    {
         $success = false;
         $this->encrypt();//use to hash the provided password
         try{
             $conf = Zend_Registry::get('config');
             $db = Zend_Db::factory($conf->database);
             $select = $db->select()
                          ->from('user','COUNT(*)')
                          ->where('userName = ?',$this->userName)
                          ->where('password = ?',$this->password);
            $stmt = $select->query();
            $result = $stmt->fetchColumn(0);
            if($result == 1){
                $success = true;
                return $success;
            }

        } catch (Exception $e) {
            $e->getMessage();
            return $success;
        }
    }
}

注:mysql_connect()以前に と を使用し てこれをテストしましたmysql_query()。その後、うまくいきました。クエリが成功すると、メイン ページが表示されます。それ以外の場合は、ウェルカム ページにリダイレクトされます。次に、Userクラスを変更しただけで、ログインしようとすると空白のページが表示されるようになりました。どうしてこれなの?

4

0 に答える 0