【表定義情報】
テーブル名:admin
(A VARCHAR(6),
B VARCHAR(3),
C VARCHAR(9),
D VARCHAR(1),
E VARCHAR(7),
F VARCHAR(8),
G VARCHAR(8),
H VARCHAR(20),
I VARCHAR(7),
J VARCHAR(8),
K VARCHAR(7),
L VARCHAR(8),
M TEXT,
N TEXT,
O VARCHAR(8),
P VARCHAR(6),
Q VARCHAR(8),
R VARCHAR(6),
PRIMARY KEY (A,B))
テーブル名:meisai
(A VARCHAR(6),
B VARCHAR(3),
C VARCHAR(5),
D VARCHAR(7),
E VARCHAR(9),
F VARCHAR(1),
G VARCHAR(2),
H VARCHAR(2),
I VARCHAR(3),
J VARCHAR(30),
K VARCHAR(30),
L VARCHAR(30),
M INTEGER,
N VARCHAR(4),
O REAL,
P REAL,
Q VARCHAR(2),
R VARCHAR(2),
S VARCHAR(5),
T VARCHAR(1),
U VARCHAR(40),
V VARCHAR(40),
W VARCHAR(1),
X VARCHAR(20),
Y VARCHAR(5),
Z VARCHAR(5),
AA VARCHAR(8),
AB VARCHAR(6))
はじめまして、浜ちゃんといいます。
現在、SQLite3で作成したDBのテーブルに対して、バッチ処理を作成中です。
処理内容は、PowerGRESとOracle8.1.6のレコードを呼んで、SQLite3で作成した
テーブルに対しPDOを用いたInsertを行う処理ですが、下記のエラーメッセージで
エラーとなり解決できませんでした。
試しに、コマンドプロンプトよりSQLite3のコマンド処理でInsert処理は問題なく
できる事は確認しました。
また、同一のプログラム内で別テーブルへのInsert処理は問題なく動作します。
(DBファイルはテーブル毎に作成しています。)
良い解決策があればアドバイスをお願いします。
【動作環境】
OS:Windows2000 SP4
PHP: Windows zip package版(PHP 5.2.1 (cli) (built: Feb 7 2007 23:11:26))
DLLファイルのバージョン:php_pdo_sqlite.dll(5.2.1.1)
php_pdo.dll(5.2.1.1)
php_sqlite.dll(5.2.1.1)
【SQLiteのバージョン】
DB作成時のSQLiteのバージョンは、SQLite version 3.3.17
【INIファイルの設定情報】
;extension=php_openssl.dll
extension=php_pdo.dll
;extension=php_pdo_firebird.dll
;extension=php_pdo_mssql.dll
;extension=php_pdo_mysql.dll
;extension=php_pdo_oci.dll
;extension=php_pdo_oci8.dll
;extension=php_pdo_odbc.dll
extension=php_pdo_pgsql.dll
extension=php_pdo_sqlite.dll
extension=php_pgsql.dll
;extension=php_pspell.dll
;extension=php_shmop.dll
;extension=php_snmp.dll
;extension=php_soap.dll
;extension=php_sockets.dll
extension=php_sqlite.dll
;extension=php_sybase_ct.dll
【表定義情報】
テーブル名:admin
(A VARCHAR(6),
B VARCHAR(3),
C VARCHAR(9),
D VARCHAR(1),
E VARCHAR(7),
F VARCHAR(8),
G VARCHAR(8),
H VARCHAR(20),
I VARCHAR(7),
J VARCHAR(8),
K VARCHAR(7),
L VARCHAR(8),
M TEXT,
N TEXT,
O VARCHAR(8),
P VARCHAR(6),
Q VARCHAR(8),
R VARCHAR(6),
PRIMARY KEY (A,B))
テーブル名:meisai
(A VARCHAR(6),
B VARCHAR(3),
C VARCHAR(5),
D VARCHAR(7),
E VARCHAR(9),
F VARCHAR(1),
G VARCHAR(2),
H VARCHAR(2),
I VARCHAR(3),
J VARCHAR(30),
K VARCHAR(30),
L VARCHAR(30),
M INTEGER,
N VARCHAR(4),
O REAL,
P REAL,
Q VARCHAR(2),
R VARCHAR(2),
S VARCHAR(5),
T VARCHAR(1),
U VARCHAR(40),
V VARCHAR(40),
W VARCHAR(1),
X VARCHAR(20),
Y VARCHAR(5),
Z VARCHAR(5),
AA VARCHAR(8),
AB VARCHAR(6))
【ソースコード】
①正常終了するソースコード
$strSQL = "INSERT INTO admin VALUES (:A,:B,:C,:D,";
$strSQL .= ":E,:F,:G,:H,:I,:J,";
$strSQL .= ":K,:L,:M,:N,:O,:P,";
$strSQL .= ":Q,:R)";
$pdo_rec = $pdo_db1->prepare($strSQL);
$pdo_rec->bindParam(':A',$row['A']);
$pdo_rec->bindParam(':B',$row['B']);
$pdo_rec->bindParam(':C',$C);
$pdo_rec->bindParam(':D',$D);
$pdo_rec->bindParam(':E',$row['E']);
$pdo_rec->bindParam(':F',$row['F']);
$pdo_rec->bindParam(':G',$row['G']);
$pdo_rec->bindParam(':H',$row['H']);
$pdo_rec->bindParam(':I',$row['I']);
$pdo_rec->bindParam(':J',$row['J']);
$pdo_rec->bindParam(':K',$row['K']);
$pdo_rec->bindParam(':L',$row['L']);
$pdo_rec->bindParam(':M',$m);
$pdo_rec->bindParam(':N',$n);
$pdo_rec->bindParam(':O',$row['O']);
$pdo_rec->bindParam(':P',$row['P']);
$pdo_rec->bindParam(':Q',$q);
$pdo_rec->bindParam(':R',$r);
$pdo_rec->execute();
②異常終了するソースコード
$strSQL = "INSERT INTO meisai VALUES (:A,:B,:C,:D,:E,";
$strSQL .= ":F,:G,:H,:I,:J,:K,:L,";
$strSQL .= ":M,:N,:O,:P,:Q,:R,:S,:T,";
$strSQL .= ":U,:V,:W,:X,:Y,:Z,:AA,:AB)";
$pdo_rec2 = $pdo_db2->prepare($strSQL);
$pdo_rec2->bindParam(':A',$row['A']);
$pdo_rec2->bindParam(':B',$row['B']);
$pdo_rec2->bindParam(':C',$ADORs2->Fields[C]->Value);
$pdo_rec2->bindParam(':D',$ADORs2->Fields[D]->Value);
$pdo_rec2->bindParam(':E',$E);
$pdo_rec2->bindParam(':F',$F);
$pdo_rec2->bindParam(':G',$ADORs2->Fields[G]->Value);
$pdo_rec2->bindParam(':H',$ADORs2->Fields[H]->Value);
$pdo_rec2->bindParam(':I',$ADORs2->Fields[I]->Value);
$pdo_rec2->bindParam(':J',$ADORs2->Fields[J]->Value);
$pdo_rec2->bindParam(':K',$ADORs2->Fields[K]->Value);
$pdo_rec2->bindParam(':L',$ADORs2->Fields[L]->Value);
$pdo_rec2->bindParam(':M',$ADORs2->Fields[M]->Value);
$pdo_rec2->bindParam(':N',$ADORs2->Fields[N]->Value);
$pdo_rec2->bindParam(':O',$ADORs2->Fields[O]->Value);
$pdo_rec2->bindParam(':P',$ADORs2->Fields[P]->Value);
$pdo_rec2->bindParam(':Q',$ADORs2->Fields[Q]->Value);
$pdo_rec2->bindParam(':R',$ADORs2->Fields[R]->Value);
$pdo_rec2->bindParam(':S',$ADORs2->Fields[S]->Value);
$pdo_rec2->bindParam(':T',$ADORs2->Fields[T]->Value);
$pdo_rec2->bindParam(':U',$ADORs2->Fields[U]->Value);
$pdo_rec2->bindParam(':V',$ADORs2->Fields[V]->Value);
$pdo_rec2->bindParam(':W',$ADORs2->Fields[W]->Value);
$pdo_rec2->bindParam(':X',$ADORs2->Fields[X]->Value);
$pdo_rec2->bindParam(':Y',$ADORs2->Fields[Y]->Value);
$pdo_rec2->bindParam(':Z',$Z);
$pdo_rec2->bindParam(':AA',$AA);
$pdo_rec2->bindParam(':AB',$AB);
$pdo_rec2->execute();
【エラーメッセージ】
Fatal error: Uncaught exception 'PDOException'
with message 'SQLSTATE[HY000]: General error: 25
bind or column index out of range'
以上、宜しくお願いいたします。
[編集] [返信]