0

このようにしようとしましたが、いくつかのエラーが表示されています。テーブル名はユーザーとメッセージです。

<?php

class Application_Model_childconnect1 extends Zend_Db_Table_Abstract
{
    protected $_name = 'users';

    public function loginvalidation($username,$pwd)
    {


        $row = $this->fetchRow('UserName = \'' . $username . '\'and UserPW = \''. $pwd . '\'');
        if (!$row)
        {
            $msg="invalid";
            return $msg;
        }
        else
        {
            return $row->toArray();
        }

    }

    protected $_name = 'messages';

     public function replymessage($message)
      {

        $data=array(
            'MessageText'=>$message
              );
        $this->insert($data);
      }


}
4

2 に答える 2

1

Zend_Db_Tableテーブル データ ゲートウェイであり、定義上は

データベース テーブルへのゲートウェイとして機能するオブジェクト。1 つのインスタンスがテーブル内のすべての行を処理します。

つまり、テーブルごとに 1 つのクラスがあり、クラスごとに複数の名前を持つことはできません。適切な使用方法については、Zend Framework リファレンス ガイドを参照してください。

于 2010-04-08T13:00:53.753 に答える
0

アプリケーションをそのままセットアップしても問題ありませんが、Zend Authを使用して認証を処理することを検討することをお勧めします。

それはさておき、一般的に ZF を使用する場合は、Zend_Db_Selectクラスを利用すると便利です。

<?php
public function loginvalidation($username,$pwd)
{
  $s = $this->select();
  $s->where('UserNmae = ?',$username)
  $s->where('UserPW = ?',$pwd);

  $rowset = $this->fetchall($s);
  if(count($rowset) == 1)
  {
   return $row->current()->toArray();
  } else {
   return "Invalid"
  }
}

本当に手動で SQL を生成したい場合は、それも可能です。Zend_Db_Adapterオブジェクトのqueryメソッドを使用するだけです。

<?php
public function loginvalidation($username,$pwd)
{
  $rowset = $this->getAdapter()->query('UserName = \'' . $username . '\'and UserPW = \''. $pwd . '\'');
  if(count($rowset) == 1)
  {
   return $row->current()->toArray();
  } else {
   return "Invalid"
  }
}
于 2010-04-09T06:38:55.027 に答える