PDO::PARAM_STR是PDO参数绑定时指定的数据类型常量,表示绑定的参数为字符串类型。其作用与bindParam()方法共同构成PDO预处理语句的安全机制
一、PDO::PARAM_STR的作用
数据类型标识
明确告知数据库引擎将绑定的值作为字符串处理,避免隐式类型转换问题安全转义
自动对特殊字符(如单引号)进行转义,防止SQL注入攻击其他常用类型常量
二、bindParam()方法详解
核心功能
将PHP变量与SQL占位符绑定,建立引用关系(变量值变化会影响最终执行的SQL)参数说明
bindParam( string $param, // 占位符名(如:username) mixed &$var, // 绑定的变量(需传引用) int $type, // 数据类型(如PDO::PARAM_STR) int $maxLength, // 可选,最大长度 mixed $driverOpts // 可选,驱动特定选项 )
与
bindValue()的区别
三、完整工作流程示例
// 准备SQL模板
$stmt = $pdo->prepare('SELECT * FROM users WHERE username = :user');
// 绑定参数(变量$input后续变化会影响查询)
$input = "admin";
$stmt->bindParam(':user', $input, PDO::PARAM_STR);
// 修改变量值
$input = "guest";
// 执行时实际查询WHERE username = 'guest'
$stmt->execute();此机制通过分离SQL结构与数据,既保证安全性又提升性能