0

列 ID からすべてを選択する Zend DB クエリを作成するにはどうすればよいですか?

これまでのところ、私は試しました:

public function getLatestUserID()
    {
        $ids = $this->select()
             ->where('id = ?');
        return $ids;
    }

しかし、役に立たない。

4

2 に答える 2

1

getLatestUserID を含むクラスが Zend_Db_Table_Abstract も拡張していることを確認してください。

$ids = $this->select()->where('id = ?'); where('id = ?'); のため動作しません。のような id 値が必要ですwhere('id = ?', $id);

必要なのは、最後に挿入された行の Id の使用である場合:

$lastInsertId = $this->getAdapter()->lastInsertId();

(ただし、Oracle データベースを使用している場合、これは機能しないため、使用する必要があります$lastInsertId = $this->getAdapter()->lastSequenceId('USER_TABLE_SEQUENCE');)

于 2012-05-04T12:38:20.330 に答える
1

id列が必要なだけです
。実行コマンドの呼び出しに失敗しました。

試す:

//assuming you are using a DbTable model
public function getLatestUserID()
    {
        $ids = $this->fetchAll('id');
        return $ids;
    }

すべてに select() オブジェクトを使用するため、次のようにします。

public function getLatestUserID()
    {
        $select = $this->select();
        //I'm not sure if $this will work in this contex but you can out the table name
        $select->from(array($this), array('id'));
        $ids = $this->fetchAll($select);
        return $ids;
    }

最初の 2 つの例は、テーブルの列のみを返す必要がありidますが、実際に特定のid.

 public function getLatestUserID($id)
        {
            $select = $this->select();
            $select->where('id = ?', $id);
            //fetchAll() would still work here if we wanted multiple rows returned
            //but fetchRow() for one row and fetchRowset() for multiple rows are probably
            //more specific for this purpose.
            $ids = $this->fetchRow($select);
            return $ids;
        }
于 2012-05-04T11:43:40.183 に答える