2012-08-28 82 views
1

我習慣於插入一個元組到表時逃脫字符串,但我並沒有關於插入的情況下逃脫串像這樣一個發現什麼:在這種情況下是否有必要轉義插入值?

INSERT INTO TABLE1 SELECT * FROM TABLE2 WHERE ... 

...我知道,TABLE1和TABLE2必須具有相同的列(並且具有)。但我不確定逃跑。任何人都可以告訴我在這種插入情況下MySQL如何操作,如果有必要,我應該如何轉義字符串?

在此先感謝。

+0

你並不需要改變以任何方式;只要表格是相同的。 – hjpotter92

+0

假設你關於轉義的問題涉及到「WHERE」子句是否公平? –

回答

4

在那裏所示的情況下是沒有必要逃避任何事,你在數據庫內完全工作。顯然,填充到table2中後,數據必須已被轉義。

+0

謝謝。實際上,我不在同一個數據庫中工作。 TABLE1位於TABLE2的不同數據庫中。但我明白你的意思。 ;) – Andrade

1

不要逃避什麼。使用支持預準備語句的解決方案(如PDO或mysqli)。

編輯

接受,有一種可能性,即OP講的不是PHP,我可以概括我的回答說,無論你使用,一定要使用的API支持準備好的陳述如果您使用的是.NET棧,或Ruby,Python或幾乎任何有使用,有可能提供給您一個徹頭徹尾的現成的API,支持這一點。

+0

這與PDO或mysqli有關。這些問題甚至都沒有提到,PHP也沒有提到。 –

+1

當一個人詢問轉義和MySQL時,它幾乎總是關心PHP。如果你想從等式中拿掉PHP,那麼他仍然是一個有效的假設,他並不是在談論與數據庫的直接交互,因爲他正在提出逃避的問題。我的底線仍然存在 - 使用支持預準備語句的API(使用您使用的任何語言)。 –

+0

我正在使用基於PHP的框架。 – Andrade

1

INSERT INTO TABLE1 SELECT * FROM TABLE2是罰款原樣。如果你有在WHERE ...部分的任何用戶輸入,則需要轉義,以同樣的方式,你所熟悉的。

相關問題