如何在 zend 框架中使用 extends Zend_Db_Table_Abstract 来使用多个 $_name

发布于 2024-08-28 07:10:38 字数 720 浏览 12 评论 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);
      }


}

we tried to do like this,but it is showing some errors.Our table names are users and messages.

<?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);
      }


}

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

空宴 2024-09-04 07:10:38

Zend_Db_Table 是一个表数据网关,根据定义是

充当数据库表网关的对象。一个实例处理表中的所有行。

这又意味着每个表有一个类,并且每个类不能有多个名称。请参阅 Zend Framework 参考指南以了解如何正确使用它:

Zend_Db_Table is a Table Data Gateway, which by definition is

An object that acts as a Gateway to a database table. One instance handles all the rows in the table.

which in turn means you have one class per table and cannot have multiple names per class. See the Zend Framework Reference Guide to learn how to use it properly:

二智少女 2024-09-04 07:10:38

虽然欢迎您按照自己的方式设置应用程序,但您可能需要考虑使用 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 方法即可/a> 对象。

<?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"
  }
}

While you are welcome to setup the application as you have, you may want to look into using Zend Auth to handle authentication.

That aside if you are going to be making use of ZF in general then taking advantage of the Zend_Db_Select class can be helpful.

<?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"
  }
}

If you really want to generate the SQL by hand you can do so as well. Just use the query method of the Zend_Db_Adapter Object.

<?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"
  }
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文