2011-05-11 67 views
1

你好 我有一個開發服務器和生產服務器都是相同的數據庫。 ID模型圖像 生產:價格和OUT_OF_STOCKMysql Escape功能;通過使用選擇查詢生成更新查詢

我不想爲此使用PHP 表產品將在兩臺服務器上,但只有在不同的列 發展進行編輯。

,所以我創造了以下查詢的開發服務器

SELECT CONCAT("UPDATE `products` SET `products_id` = ", products_id, ",`products_model` = '", REPLACE(products_model, "'", "\'") , "',`products_image` = '", products_image, "' WHERE `products`.`products_id` = ", products_id, ";") 
FROM `products` 

該查詢返回我生產的查詢斷絕

UPDATE `products` SET `products_id` = 60,`products_model` = 'CT'257',`products_image` = 'ct_black01.jpg' WHERE `products`.`products_id` = 60; 
UPDATE `products` SET `products_id` = 59,`products_model` = 'CT"255',`products_image` = 'ct_black01.jpg' WHERE `products`.`products_id` = 59; 
UPDATE `products` SET `products_id` = 58,`products_model` = 'CT/242',`products_image` = 'ct_black01.jpg' WHERE `products`.`products_id` = 58; 
UPDATE `products` SET `products_id` = 57,`products_model` = 'CT221',`products_image` = 'ct_black01.jpg' WHERE `products`.`products_id` = 57; 

的問題是,我需要逃跑的領域時, product_model包含「或」或兩者都 那麼這個查詢將失敗

我怎麼可以做mysql_real_escape沒有php?

謝謝

回答

1

如何

REPLACE(REPLACE(products_model, "'", "\\'"), '"', '\\"') 

這將替換所有單引號和雙引號與轉義單引號和雙引號。