1

在将单个元组插入表时,我习惯于转义字符串,但我没有找到任何关于在插入情况下转义字符串的信息,例如:

INSERT INTO TABLE1 SELECT * FROM TABLE2 WHERE ...

...我知道 TABLE1 和 TABLE2 必须具有相同的列(并且它们具有)。但我不确定逃跑。谁能告诉我 MySQL 在这种插入情况下是如何操作的,如果有必要,我应该如何转义字符串?

提前致谢。

4

3 回答 3

4

在所示情况下,无需转义任何内容,因为您完全在数据库中工作。显然,当填充到 table2 中时,数据必须已经被转义。

于 2012-08-28T18:10:28.177 回答
1

不要逃避任何事情。使用支持预处理语句的解决方案(如 PDO 或 mysqli)。

编辑

接受 OP 不是在谈论 PHP 的可能性,我可以概括我的回答是说,无论您使用什么,请务必使用支持准备好的语句的 API。如果您使用的是 .NET 堆栈、Ruby、Python 或几乎任何可用的东西,那么您可能有一个开箱即用的 API 可以支持这一点。

于 2012-08-28T18:09:15.390 回答
1

INSERT INTO TABLE1 SELECT * FROM TABLE2没问题。如果您在WHERE ...部件中有任何用户输入,则需要以您熟悉的相同方式对其进行转义。

于 2012-08-28T18:13:52.423 回答