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';
   }
?>

如果我有像 john、shan、google 这样的普通数据,它会进入 db 表,但如果数据像 mac 或任何有单引号的东西,而不是 oracle 的错误。在这种情况下请帮助我。

4

2 回答 2

4

在带有单引号的 SQL 文本中不能直接插入,我们必须在文本中的任何单引号之前使用一个额外的引号。像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 回答