PHPでORACLEに接続し、テーブルT_JUTYU_INFOに
データbox_noとstatusを登録する方法を教えてください。
以下はORACLEではなくMYSQLで動作確認できたソースになります。
どこをどのように修正したらよいか教えてください。
<?php // DB接続情報 $dsn = 'mysql:host=localhost;dbname=qrsystemtest;charset=utf8mb4'; $username = 'prones_tst'; $password = 'PRONES_TST'; try{ // データベースへの接続を表すPDOインスタンスを生成 $pdo = new PDO($dsn,$username,$password); $input_str = file_get_contents("php://input"); $input_json = json_decode($input_str,true); $json_count = count($input_json); $box_no = array(); $status = array(); $output = array(); for($i=0;$i<$json_count;$i++){ $str = "QR_SOSIN_HIS$i"; $str1 = "status$i"; $box_no[] = $input_json["$str"]["box_no"]; $count = 0; $sql = "select * from T_JUTYU_INFO where box_no = '$box_no[$i]'"; $result = $pdo->query($sql) or die($sql . '<br />' . mysql_error() . '<hr />'); $result->execute(); while($rec = $result->fetch(PDO::FETCH_ASSOC)){ $output[] = $rec; $count++; } if ($count !== 0) { $status["$str1"] = 0; } else { $status["$str1"] = 1; } $stmt = $pdo->prepare("INSERT INTO t_kari_send_his (box_no,status) VALUES(:box_no, :status )"); $stmt -> bindParam(':box_no', $box_no[$i], PDO::PARAM_STR); $stmt -> bindParam(':status', $status["$str1"], PDO::PARAM_STR); $stmt -> execute(); } echo json_encode($status, JSON_UNESCAPED_UNICODE); }catch (PDOException $e) { // UTF8に文字エンコーディングを変換します echo mb_convert_encoding($e->getMessage(),'UTF-8','SJIS-win'); } // 接続を閉じる $pdo = null; ?>
ーーーーー
以下はORACLEに接続して時刻を取得できた時のPHPのソースです。
こちらが何かのヒントになるかもしれないので載せておきます。
<?php $con = oci_connect( 'prones_tst', 'PRONES_TST', '//' . 'localhost' . ':' . '1521' . '/' . 'ORCL' ); $stmt = oci_parse( $con, "SELECT SYSDATE FROM DUAL" ); oci_execute( $stmt ); $row = oci_fetch_array( $stmt ); print $row['SYSDATE']; oci_close( $con ) ?>
回答1件
あなたの回答
tips
プレビュー