php経由でPDO odbc経由でiSeries DB2に挿入文を実行しようとしたときに問題が発生しました。Linux上でPHPを使用してiSeries DB2に挿入しようとするとPDOエラーが発生する
次は私のPHPスクリプトです:
<?php
$empl_number = $argv[1];
$empl_estatus = $argv[2];
$empl_lname = $argv[3];
$empl_fname = $argv[4];
$empl_user = $argv[5];
try {
$sql = "INSERT INTO `USER_PROFILE_AD` (`EMPLOYEE_NUMBER`, `EMPLOYEE_STATUS`, `LAST_NAME`, `FIRST_NAME`, `LDAP_RDN`, `ACTIVE`, `USER_PROFILE`) VALUES (:numb, :stat, :lname, :fname, :usern, :active, :profile)";
$conn = new PDO("odbc:AS400TST");
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$stmt = $conn->prepare($sql);
$stmt->bindParam(':numb', $empl_number, PDO::PARAM_INT);
$stmt->bindParam(':stat', $empl_estatus, PDO::PARAM_STR);
$stmt->bindParam(':lname', $empl_lname, PDO::PARAM_STR);
$stmt->bindParam(':fname', $empl_fname, PDO::PARAM_STR);
$stmt->bindParam(':usern', $empl_user, PDO::PARAM_STR);
$stmt->bindParam(':active', 0, PDO::PARAM_INT);
$stmt->bindParam(':profile', NULL, PDO::PARAM_NULL);
$stmt->execute();
} catch (PDOException $e) {
echo $e->getMessage();
}
?>
私は、コマンドライン...
[email protected]: /usr/bin/php myscript.php 1234 AC DOE JOHN JOHN.DOE
経由でスクリプトを実行すると、私は次のようなエラーメッセージが出ます:
SQLSTATE[42000]: Syntax error or access violation: 0 [IBM][System i Access ODBC Driver]Statement violates access rule: Connection is set to read only. (SQLPrepare[0] at /builddir/build/BUILD/php-5.4.16/ext/pdo_odbc/odbc_driver.c:206)
を私はiSeries開発者を二重チェックし、私が使用しているユーザー名はデータベース/テーブル/に完全にアクセスできますC ...
なぜインサートが機能しないのか教えてください。
NOTES:
接続が正常に動作します。
「選択」ステートメントは正常に機能します。 /etc/odbc.iniで
、事前にCOMMITMODE = 2
おかげで、
EGMWEB
jmarkmurphy、ご返信ありがとうございます。 iSeries管理者に確認します。 – egmweb