0

PHP zend フレームワークで mysql 関数を使用する必要があります

シナリオは次のとおりです。

zend フレームワークに実装されている結合クエリがあります。出力を取得する必要があります。

mysql 関数。たとえば、以下は mysql 関数です。

CREATE FUNCTION `junk`.`MakeDateList`
    -> (
    ->   BeginDate DATE,
    ->   EndDate DATE,
    ->   InclusionList VARCHAR(20)
    -> )
    -> RETURNS VARCHAR(4096)
    -> DETERMINISTIC
    -> BEGIN
    ->   DECLARE RunningDate DATE;
    ->   DECLARE rv VARCHAR(4096);
    ->   DECLARE comma CHAR(1);
    ->   DECLARE IncList,DOWValue VARCHAR(20);
    ->   DECLARE OK_To_Add INT;
    ->
    ->   SET IncList = CONCAT(',',InclusionList,',');
    ->   SET comma = '';
    ->   SET rv = '';
    ->   SET RunningDate = BeginDate;
    ->   WHILE RunningDate <= EndDate DO
    ->     SET OK_To_Add = 0;
    ->     SET DOWValue = CONCAT(',',DAYOFWEEK(RunningDate),',');
    ->     IF LOCATE(DOWValue,IncList) > 0 THEN
    ->       SET OK_To_Add = 1;
    ->     END IF;
    ->     IF OK_To_Add = 1 THEN
    ->       SET rv = CONCAT(rv,comma,RunningDate);
    ->       SET comma = ',';
    ->     END IF;
    ->     SET RunningDate = RunningDate + INTERVAL 1 DAY;
    ->   END WHILE;
    ->   RETURN rv;
    -> END $$

これを zend フレームワークの結合関数で使用する必要があるため、目的の出力が得られます。

新しい列で利用できる

方法や方法はありますか

前もって感謝します

4

1 に答える 1

3

試してみましたか?

Zend_Db::factory('Pdo_Mysql', array(
    'host'             => '127.0.0.1',
    'username'         => 'webuser',
    'password'         => 'xxxxxxxx',
    'dbname'           => 'test',
    'adapterNamespace' => 'MyProject_Db_Adapter'
))->query('CALL MY_PROCEDURE(?, ?, ?)', array($beginDate, $endDate, $inclusionList))
->fetchAll();
于 2013-02-11T14:19:41.383 に答える