2013-11-09 1 views
0

Я пытаюсь вставить данные в таблицу oracle из пользовательского плагина/кода magento. Ниже код работает для меня, но я не могу вставить одну кавычку со значениями.Одиночная цитата, не вставляемая в таблицу oracle or view из пользовательского кода magento

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

, если у меня есть простые данные, как сортир, Сана, Google он попадает в БД таблицу, но если данные как Мака или что-нибудь, который имеет одинарную кавычку, чем оракула через ошибки. Пожалуйста, помогите мне в этом случае.

+0

Это соединение моего вопроса. http://stackoverflow.com/questions/37268711/get-connection-oracle-database-from-magentos-custom-code Помогите мне пожалуйста. ^^ –

ответ

3

в тексте SQL, который имеет одинарную цитату, нельзя вставлять напрямую, мы должны использовать одну дополнительную цитату перед любой отдельной цитатой в тексте. , как Mac, должен быть представлен как mac. так позволяет подготовить переменные, прежде чем положить их в SQL, как этот

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

Deependra, это не mysql, это oracle db. –

+0

жаль, что я не подтвердил для Oracle. но после простого поиска я обнаружил, что вместо обратной косой черты, если мы предоставим одну дополнительную цитату, она будет работать. поэтому утверждение в моем ответе становится $ value = str_replace ("'", "' '", $ value); У меня нет настройки Oracle в моей системе для тестирования. Вы можете проверить и подтвердить, работает ли он –

+0

Deependra, обновите свой ответ с помощью $ value = str_replace ("'", "' '", $ value); он работает для меня, так что я могу отметить его как правильно. –

0

если вы используете Oracle DB, предпочтительно 9i и выше .. попробовать:

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

 Смежные вопросы

  • Нет связанных вопросов^_^