[pgsql-jp: 36762] Re: PEAR:autoExecute を使うためには?

KOYAMA Tetsuji koyama @ hoge.org
2006年 2月 23日 (木) 16:41:01 JST


小山です。

PHP の話題なので、もし続ける場合は php-users @ php.gr.jp にお願いします。

On 2/23/06, Nakamura Kazuto <kazuto @ sainet.or.jp> wrote:
> PHP4 - PEAR にある DB_common::autoExecute() という関数を使いたいのですが
> 現状うまく行っていません。
> http://pear.php.net/manual/ja/package.database.db.db-common.autoexecute.php
>
> 恐らくテーブルの作り方が悪いのだと思いますが、この関数をうまく動作させる
> ためにはどのようなテーブル構築をすればいいのでしょうか?

> ● テーブル
> CREATE TABLE news (
>  id serial PRIMARY KEY,
>  date timestamp,
>  subject text NOT NULL,
>  body text NOT NULL
> ) ;

これと全く同じテーブルを用意して

<?php
require_once 'DB.php';

$dsn = 'pgsql://koyama:passwd@localhost/koyama';
$db = DB::connect($dsn);
if (PEAR::isError($db)) {
    die($db->getMessage());
}

$data = array(
    'date' => "'now'",
    'subject' => 'Test subject',
    'body' => 'Test body',
    );

$err = $db->autoExecute('news', $data, DB_AUTOQUERY_INSERT);
if (PEAR::isError($db)) {
    die($err->getMessage());
}
?>

というコードを実行したところ、特にエラーにもならずにちゃんと
news テーブルにデータが挿入されました。PHP のバージョンは
4.4.2、PEAR::DB のバージョンは 1.7.6 です。

どこか他のところに問題があるような気がします。

--
    小山哲志@ビート・クラフト
    koyama @ beatcraft.com
    koyama @ hoge.org



pgsql-jp メーリングリストの案内