指尖上的记忆指尖上的记忆
首页
  • 基础
  • Laravel框架
  • Symfony框架
  • 基础
  • Gin框架
  • 基础
  • Spring框架
  • 命令
  • Nginx
  • Ai
  • Deploy
  • Docker
  • K8s
  • Micro
  • RabbitMQ
  • Mysql
  • PostgreSsql
  • Redis
  • MongoDb
  • Html
  • Js
  • 前端
  • 后端
  • Git
  • 知识扫盲
  • Golang
🌟 gitHub
首页
  • 基础
  • Laravel框架
  • Symfony框架
  • 基础
  • Gin框架
  • 基础
  • Spring框架
  • 命令
  • Nginx
  • Ai
  • Deploy
  • Docker
  • K8s
  • Micro
  • RabbitMQ
  • Mysql
  • PostgreSsql
  • Redis
  • MongoDb
  • Html
  • Js
  • 前端
  • 后端
  • Git
  • 知识扫盲
  • Golang
🌟 gitHub
php之特殊字符转义addslashes

addslashes() 的作用就是 在字符串中自动给某些特殊字符前加上反斜杠(\)进行转义,这样它们在 SQL、PHP 字符串、或其他需要转义的场景中不会被直接当作特殊字符处理。


会转义哪些字符?

addslashes() 会在下面这些字符前加上反斜杠:

  1. 单引号 ' → \'
  2. 双引号 " → \"
  3. 反斜杠 \ → \\
  4. NUL(ASCII 0,空字符) → \0

例子
$str = "O'Reilly";
echo addslashes($str);

输出:

O\'Reilly

在 SQL 中,如果不转义,O'Reilly 会因为 ' 号破坏语句结构:

SELECT * FROM users WHERE name = 'O'Reilly'; -- ❌ SQL 语法错误

加了 addslashes() 后:

SELECT * FROM users WHERE name = 'O\'Reilly'; -- ✅ 安全

注意
  • addslashes() 是最基础的转义方法,并不针对某个特定数据库优化。
  • 在数据库场景里更推荐使用 PDO 或 Doctrine 的参数绑定(Prepared Statements),这样不需要手动转义。
  • 如果必须手动转义,MySQL 其实还有更安全的 mysqli_real_escape_string()(会根据数据库连接的字符集处理转义)。