[pgsql-jp: 31602] Oracleとの更新処理の違い
takada @ lifedesign.co.jp
takada @ lifedesign.co.jp
2003年 11月 26日 (水) 16:21:01 JST
高田と申します。よろしくお願いします。
Windows2k+Apache1.3+PHP4.3+Oracle9iの環境から、
RedhatLinux+Apache1.3+PHP4.3+PostgreSQL7.4
への移行をしようと試みています。
とりあえず従来あるWebアプリを移行しながら練習をし
かけているのですが、早速更新処理で詰まってしまいま
した。
単一行の挿入、更新、削除は別に問題ないのです
が、一気に複数行の処理を行うとき、Oracleですと、
最初にSQL文をPerseして、バインド変数を宣言、
後はループの中で変数を入れ替えながらExcuteして
いけばよかったのですが、PostgreSQLでこのような
場合のやり方がわかりません。
基本的にはSQL文は最初に書いて変数の中に入れて
置いて、実行時にはSQL文は変数で参照するように
コーディングしたいのですが、PosrgreSQLの場合は、
実行時にSQL文を書かないとしょうがないのでしょう
か。
具体的にはOracleでは
$registSql=<<<SQL
insert into DB_TABLE
(ID,FIELD_ID,NAME,TYPE,SIZE)
values
(:ID,:fieldID,:field_1,:field_2,:field_3)
SQL;
$stmt = OCIParse($conn,$registSql);
OCIBindByName($stmt,":ID",&$ID,10);
OCIBindByName($stmt,":fieldID",&$FIELD_ID,10);
OCIBindByName($stmt,":field_1",&$FIELD_1,10);
OCIBindByName($stmt,":field_2",&$FIELD_2,10);
OCIBindByName($stmt,":field_3",&$FIELD_3,10);
for ($j=1;$j<=20;$j++){
$FIELD_ID=$j;
$FIELD_1=$FieldName[$j];
$FIELD_2=$FieldType[$j];
$FIELD_3=$FieldSize[$j];
OCIExecute($stmt,OCI_DEFAULT);
}
散々探したつもりですが、どうしても見つけ
られませんでした。よろしくお願いいたしま
す。
pgsql-jp メーリングリストの案内