[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 メーリングリストの案内