[s2container-php5:20] Re: S2Container.PHP5-1.1.0-rc1 リリース
TAKAGI Masahiro
matakagi @ osk2.3web.ne.jp
2006年 3月 20日 (月) 12:29:50 JST
高木です。
土曜日はまともに挨拶もせずに消えてしまい、すみませんでした。
At Mon, 20 Mar 2006 02:17:47 +0900,
TAKAHASHI Kunihiko wrote:
>
> Apache 2.0.55 + PHP 5.1.2 の環境を作ってみたんですが
> 以下のような感じで落ちます。
>
> [Mon Mar 20 01:30:43 2006] [notice] child pid 13830 exit signal Segmentation fau
> lt (11)
>
> さらに調べてみたところ、どうも PostgreSQL にするとダメみたいです。
> MySQLだと以下の環境で問題なく動きました。
>
> - Apache 1.3.34 + PHP 5.1.1
> - Apache 1.3.34 + PHP 5.1.2
> - Apache 2.0.55 + PHP 5.1.1
> - Apache 2.0.55 + PHP 5.1.2
>
> 一応私の環境でも以下のスクリプトは動いてるので、原因はS2Dao.PHP5の
> PostgreSQL関連部分ですかね。
>
きちんと追試できていない & S2Dao.PHP5 のソースもあまり読み込んでいない
のでアレなのですが、もし以下のパッチを適用した PHP 5.1.2 で落ちなくな
るようだったら、原因は PostgreSQL 用 PDO ドライバのバグです。
PHP 5.1.3RC1 では修正されています (http://bugs.php.net/36382)。
========= ここから ===================================================
--- php-5.1.2/ext/pdo_pgsql/pgsql_driver.c.orig 2006-01-01 21:50:12.000000000 +0900
+++ php-5.1.2/ext/pdo_pgsql/pgsql_driver.c 2006-03-20 11:12:11.000000000 +0900
@@ -667,7 +667,7 @@
H->pgoid = -1;
dbh->methods = &pgsql_methods;
- dbh->alloc_own_columns = 0;
+ dbh->alloc_own_columns = 1;
dbh->max_escaped_char_length = 2;
ret = 1;
========= ここまで ===================================================
> --- ここから
>
> <?php
> try {
> $db = new PDO('pgsql:host=localhost;dbname=s2con', "user", "pass");
> $stmt = $db->prepare("select * from cd");
> $stmt->execute();
> var_dump($stmt->fetchAll());
ちなみに、ここで
var_dump($stmt->getColumnMeta(0));
としてみるとどうなりますか?
> } catch (PDOException $e) {
> die($e->getMessage());
> }
> ?>
>
> -- ここまで
>
私のほうでも、時間をつくって試してみます。
# まずは PHP 5.1.x のテスト環境を作るところから :-)
--
高木 正弘 mailto:matakagi @ osk2.3web.ne.jp
S2Container-PHP5 メーリングリストの案内