2012-03-29 3 views
0

(, ')와 같은 데이터에 특수 문자를 삽입하려면 mysql_real_escape_string() 함수를 사용하고 있습니다. & 잘 동작합니다.mysql_real_escape_string()의 결과를 oracle 데이터베이스에 삽입하는 방법은 무엇입니까?

이제 오라클에 값을 삽입하는 동안 동일한 변수를 사용하고 싶습니다.

$str = 'N.G.Palace\'s Building', 
    'xyzcity', '12345678','India','100001',12 

여기 $ str은 mysql_real_escape_string()의 결과입니다. 그래서 그것은 특수 문자를 이스케이프합니다. 이제 오라클에 대한 내 코드 this- 같다 :

$qry ="INSERT INTO Ora_table(ship_to_street, ship_to_city,ship_to_country, ship_to_telephone, order_id, record_no) VALUES(".$str); 

그래서 내 의심의 여지가 즉 궁전 \ '(작은 따옴표의이 MySQL의 기능과 같습니다 전에 \ 첨부')는 mysql_real_escape_string으로 오라클이 값이 반환 허용되지입니까? 그럼 오라클에 데이터를 삽입하기 위해 변수 $ str을 사용할 수 있습니까? 내가 오라클에 inser 데이터를 드릴 수 없습니다 여전히하지만 ...

"q"."'"."c".$str."c"."'" 

우리가 내 경우처럼 여러 값이를 사용할 수 있습니다

또한 나는이 있었어 .- 같은 시도?

HOW to insert special characters in Oracle db? 
like 'SWEET/HOME', 'CROY-BOY' etc. /,-,\ etc. 

말씀 해주십시오 ..에서

+0

오라클 데이터베이스에 대한 SQL 쿼리를 작성할 때 왜 MySQL을 이스케이프 처리합니까? – ThiefMaster

+0

Bcz, 먼저 MySQL 데이터베이스에 데이터를 삽입하고 동일한 변수를 사용하여 PHP를 통해 Oracle에 삽입합니다. – Prat

+0

MySQL 데이터베이스에서 데이터를 읽을 때 이스케이프없이 원래의 문자열을 얻을 수 있습니다 - 이스케이프는 쿼리가 중단되지 않도록 수행됩니다. 또는 의사 코드에서 그것을 말하기 :'select (insert (escape (str))) == str' – ThiefMaster

답변

3

난 강력하게 당신이 함께 문자열을 추가하여 쿼리를 작성하지 촉구한다. 이것은 곧바로 지옥이나 SQL Injection City에가는 티켓입니다. :-) 당신이 매개 변수 표시 문자를 사용하고 매개 변수 표시 문자에 값을 바인딩하면 진지하게, 당신은 몇 가지 장점이 얻을 :

    당신은 아무것도 탈출하지 않아도
  1. SQL에 대한 걱정을 주입.

공유하고 즐기십시오.

-2

: http://www.php.net/manual/en/function.stripslashes.php#94758

function no_magic_quotes($query) { 

     $data = explode("\\",$query); 
     $cleaned = implode("",$data); 
     return $cleaned; 
} 

// I'm using mysql_escape_string as a simple example, but this function would work for any escaped string. 
$query = "It's amazing! Who's to say this isn't a simple function?"; 
$badstring = mysql_escape_string($query); 

echo '<b>Without function:</b> '.$badstring; 
echo '<br><br>'; 
echo '<b>With function:</b> '.no_magic_quotes($badstring);