0

Magento のカスタム プラグイン/コードから Oracle テーブルにデータを挿入しようとしています。以下のコードは私のために働いていますが、値で一重引用符を挿入することはできません。

<?php
   $headerSql = "INSERT INTO MAGE_ORDER_INTF_HEADERS_DV (HEADER_REC_ID, IMPORT_SOURCE, IMPORT_SOURCE_INSTANCE)VALUES (".$header_rec_id.",'".$is."','".$isi."')";
   $q = $writeResourceOracle->prepare($headerSql);
   if($q->execute()) {
      echo 'success';
   }else{
      echo 'fail';
   }
?>

ジョン、シャン、グーグルなどのプレーンデータがある場合、それはdbテーブルに入りますが、データがmacのようなものであるか、エラーによってオラクルよりも単一引用符を持つものである場合。この場合、私を助けてください。

4

2 に答える 2

4

一重引用符を直接挿入できない SQL テキストでは、テキスト内の一重引用符の前に 1 つの余分な引用符を使用する必要があります。like mac's は mac''s として表す必要があります。このように変数をSQLに入れる前に変数を準備しましょう

//$value = "mac's";
$value = str_replace("'", "''", $value);
于 2013-11-09T17:58:40.407 に答える
0

Oracle dbを使用している場合、できれば9i以上..試してください:

INSERT TABLEHERE (COLUMNHERE) VALUES(q'|$value|');
于 2015-08-26T02:01:59.600 に答える