Php 单引号未从magento插入oracle表/视图';s自定义代码

Php 单引号未从magento插入oracle表/视图';s自定义代码,php,oracle,magento,plugins,Php,Oracle,Magento,Plugins,我正在尝试从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 = $writeResourc

我正在尝试从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,则会出错。在这种情况下,请帮助我。

在不能直接插入单引号的SQL文本中,我们必须在文本中的任何单引号之前使用一个额外的引号。 like mac应表示为mac。 因此,让我们在将变量放入SQL之前准备好它们,如下所示

//$value = "mac's";
$value = str_replace("'", "''", $value);

在不能直接插入单引号的SQL文本中,我们必须在文本中的任何单引号之前使用一个额外的引号。 like mac应表示为mac。 因此,让我们在将变量放入SQL之前准备好它们,如下所示

//$value = "mac's";
$value = str_replace("'", "''", $value);

如果您使用的是Oracle db,最好是9i及以上版本。。尝试:

INSERT TABLEHERE (COLUMNHERE) VALUES(q'|$value|');

如果您使用的是Oracle db,最好是9i及以上版本。。尝试:

INSERT TABLEHERE (COLUMNHERE) VALUES(q'|$value|');

Deependra,不是mysql,是oracle db。对不起,我没有确认oracle。但在搜索之后,我发现,如果我们提供一个额外的报价,那么它将起作用,而不是反斜杠。所以我的答案中的语句变成$value=str_replace(“,”,“,$value”);我的系统上没有要测试的Oracle设置。您可以测试并确认它是否有效DeepEndra,使用$value=str_replace(“'”,“''”,$value)更新您的答案;它对我有用,所以我可以把它标记为正确的。Deependra,它不是mysql,而是oracle db。很抱歉,我没有为oracle确认。但在搜索之后,我发现,如果我们提供一个额外的报价,那么它将起作用,而不是反斜杠。所以我的答案中的语句变成$value=str_replace(“,”,“,$value”);我的系统上没有要测试的Oracle设置。您可以测试并确认它是否有效DeepEndra,使用$value=str_replace(“'”,“''”,$value)更新您的答案;它对我有用,所以我可以把它标记为正确的。这是我问题的链接。请帮帮我^^这是我问题的一个环节。请帮帮我^^