[PHP-users 25135] Fwd: Fwd: php-cliでオラクルinsert時のエラーについて

yoshi yosihisa @ cem.casio.co.jp
2005年 3月 25日 (金) 16:23:27 JST


yoshiです。

その後いろいろ調べているうちに、次のような簡単なテストプログラム
を実行してみましたが、結果は正常に終了しDBにも正しくデータは
作成されているのですが、最後にcore dumpが発生してしまうことが
わかりました。
cli版でこのような現象が起こるのは、何か原因が考えられるでしょうか?

<実行結果>
$ php-cli -v
PHP 4.3.3 (cli) (built: Jul 21 2004 11:20:08)
Copyright (c) 1997-2003 The PHP Group
Zend Engine v1.3.0, Copyright (c) 1998-2003 Zend Technologies
$ php-cli test.php
Segmentation fault (core dumped)

<test.phpの内容>
<?php
require_once("DB.php");
$result = $db = DB::connect("xxxxxxxxxxxxxxxxxxxx");
if ( DB::isError($result) ) {
	echo ("DB接続失敗 : " . DB::errorMessage( $result ) . "\n");
}

$sql = "CREATE TABLE test (foo VARCHAR(16))";
$result = $db->query($sql);
if ( DB::isError($result) ) {
	echo ("テーブル作成失敗 : " . DB::errorMessage( $result ) . "\n");
}

$sql = "INSERT INTO test VALUES ('hoge')";
$result = $db->query($sql);
if ( DB::isError($result) ) {
	echo ("レコード挿入失敗 : " . DB::errorMessage( $result ) . "\n");
}

$kanji = 'あいう';
$kanji = mb_convert_encoding($kanji,'SJIS','EUC-JP');
$sql = "INSERT INTO test VALUES ('$kanji')";
$result = $db->query($sql);
if ( DB::isError($result) ) {
	echo ("レコード挿入失敗 : " . DB::errorMessage( $result ) . "\n");
}

$result = $db->disconnect();
if ( DB::isError($result) ) {
	echo ("DB切断失敗 : " . DB::errorMessage( $result ) . "\n");
}
?>

yoshi さんのコメントを転送します:
その後わかった内容を補足させていただきます。

まづ同じプログラムにurlを指定してブラウザからアクセスしてみたら
正常にDBを更新できました。

ということで、DBへの更新関連でcli版と何か違いがあるとは
考えにくいとは思うのですが、しかしcli版だけでcore dumpする
ということは、やはりcli版に何らかのバグがあるのでしょうか?

yoshi さんのコメントを転送します:
yoshiと申します。

バージョン
$ php-cli -v
PHP 4.3.3 (cli) (built: Jul 21 2004 11:20:08)
Copyright (c) 1997-2003 The PHP Group
Zend Engine v1.3.0, Copyright (c) 1998-2003 Zend Technologies
で、以下のプログラムを実行するとDBへのインサートの時
エラーとなります。
なお、同じsqlはオラクルのツール上から実行するとうまくいくことは
確認済みです。

実行結果(sqlの内容についてはわざと表示するようにしています)
$ php-cli main.php
sql =  INSERT INTO tc_tkms VALUES
                 (
                    '99999999','999999','米子','1111111','TT',
                    '','','','',
                    '鳥取県鳥取市','','','1020','',
                    '2002年 9月','22222222','','2005/03/22','2005/03/22',
                    '71031775','西日本','141','',
                    '','追加','','',
                    '','','','71031775','西日本',
                    '','','','',
                    'A','2005/03/23'
                 )

Warning: ociexecute(): OCIStmtExecute: ORA-00917: missing comma
レコード挿入失敗
Segmentation fault (core dumped)

何かこのような現象に思い当たることがある方がいらしたら
情報をいただけるとありがたいです。
よろしくお願いいたします。

----

----

----


PHP-users メーリングリストの案内