你应该使用 PDO 的预处理语句函数来帮助防范 SQL 注入攻击。
使用函数 来确保你的 SQL 免于一级 SQL 注入攻击。
(虽然并不是 100% 安全的,查看进一步阅读获取更多细节。)
在以前,这必须使用一些「魔术引号(magic quotes)」函数的组合来实现。PDO 使得那堆东西不再需要。
示例
陷阱
- 未使用作为首个查询,可能会导致Unicode数据错误地存储进数据库,这依赖于你的配置。
如果你绝对有把握你的Unicode编码数据不会出问题,那你可以不管这个。 - 启用持久连接可能会导致怪异的并发相关的问题。
这不是一个PHP的问题,而是一个应用层面的问题。只要你仔细考虑了后果,持久连接一般会是安全的。
查看Stack
Overfilow这个问题。 - 即使你使用了
setnamesutf8mb4
,你也得确认实际的数据库表使用的是utf8mb4字符集! - 可以在单个execute()调用中执行多条SQL语句。
只需使用分号分隔语句,但注意,在该文档所针对的PHP版本中还没修复。