2012-03-29 77 views
0

對於像(,')等數據插入特殊字符,我使用mysql_real_escape_string()函數&它工作正常。如何將mysql_real_escape_string()的結果插入到oracle數據庫中?

現在我想在Oracle中插入值時使用相同的變量。

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

這裏$ str是mysql_real_escape_string()的結果。所以它逃脫了特殊的性格。 現在我對Oracle的代碼是像這個 - :

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

所以我的疑問是甲骨文不接受值返回由mysql_real_escape_string即宮\「(單引號好像這是這個MySQL功能前將\」)? 因此,任何人都可以告訴我ho9w可以使用該變量$ str將數據插入到Oracle中嗎?

我也試過這樣的須─:

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

我們可以在我的情況下使用該多個值一樣...雖然我仍無法 到inser數據在Oracle?

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

請告訴我..

+0

爲什麼你會在爲oracle數據庫構建SQL查詢時使用MySQL轉義函數? – ThiefMaster 2012-03-29 11:47:43

+0

Bcz,我首先將數據插入到Mysql數據庫中,並使用相同的變量通過PHP插入到Oracle中。 – Prat 2012-03-29 11:50:25

+0

當您從MySQL數據庫讀取數據時,您將獲得原始字符串,而不會發生任何轉義 - 請記住,轉義完成後查詢不會中斷;或者用僞代碼說:'select(insert(escape(str)))== str' – ThiefMaster 2012-03-29 11:53:15

回答

3

我強烈建議你不要通過附加串在一起,建立查詢。這是一張直奔地獄的門票,或者是SQL注入城,這是一站式的。 :-)說真的,不過,如果你使用參數標記和值綁定到參數標記你獲得兩個優點:

  1. 你不必逃避什麼,
  2. 有關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); 
相關問題