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