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