我习惯在将单个元组插入表格时转义字符串,但是在插入的情况下我没有找到任何关于转义字符串的内容,例如:
INSERT INTO TABLE1 SELECT * FROM TABLE2 WHERE ...
...我知道TABLE1和TABLE2必须具有相同的列(并且它们有)。但我不确定逃跑。任何人都可以告诉我在这种插入情况下MySQL是如何运行的,如果需要我应该如何转义字符串?
提前致谢。
答案 0 :(得分:4)
在显示的情况下,由于您完全在数据库中工作,因此无需转义任何内容。显然,当填充到table2中时,数据必须被转义。
答案 1 :(得分:1)
不要逃避任何事情。使用支持预准备语句的解决方案(如PDO或mysqli)。
修改强>
接受OP可能没有谈论PHP,我可以概括我的答案,无论你使用什么,一定要使用支持预准备语句的API。如果您使用的是.NET堆栈,Ruby或Python,或几乎任何可以使用的东西,那么可能有一个支持此功能的开箱即用的API。
答案 2 :(得分:1)
INSERT INTO TABLE1 SELECT * FROM TABLE2
原样很好。如果您在WHERE ...
部分中有任何用户输入,则需要按照您熟悉的方式进行操作。