我正在尝试从洋红色的自定义插件/代码在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';
}
?>
如果我有像约翰、山、谷歌这样的纯数据,它会进入数据库表,但如果数据像 Mac 或任何比 Oracle 有单引号的东西通过错误。在这种情况下,请帮助我。
在SQL文本中,单引号不能直接插入,我们必须在文本中的任何单引号之前使用一个额外的引号。就像Mac应该表示为Mac一样。所以让我们在将它们放入 SQL 之前准备变量,如下所示
//$value = "mac's";
$value = str_replace("'", "''", $value);
如果您使用的是Oracle db,最好是9i及更高版本。
INSERT TABLEHERE (COLUMNHERE) VALUES(q'|$value|');