mysqli_stmt::bind_param
(mysqli_stmt_bind_param)将变量作为参数绑定到预准备语句
PHP 5.3.0 及以上版本
mysqli_stmt::bind_param 方法用于将变量绑定到预处理语句(prepared statement)中的参数标记(placeholder)。这允许安全地将用户输入数据传递给SQL语句,防止SQL注入攻击。
bool mysqli_stmt::bind_param(string $types, mixed &...$vars)
或使用面向过程方式:
bool mysqli_stmt_bind_param(mysqli_stmt $stmt, string $types, mixed &...$vars)
成功时返回 true,失败时返回 false。
下面的示例展示如何使用 bind_param 方法绑定参数并执行预处理语句:
<?php $mysqli = new mysqli("localhost", "user", "password", "database"); $stmt = $mysqli->prepare("INSERT INTO users (name, age, score) VALUES (?, ?, ?)"); $name = "Alice"; $age = 25; $score = 88.5; // 绑定参数:字符串(s),整数(i),浮点数(d) $stmt->bind_param("sid", $name, $age, $score); $stmt->execute(); echo "插入成功,受影响的行数: " . $stmt->affected_rows; $stmt->close(); $mysqli->close(); ?>
代码中首先创建一个mysqli对象连接数据库,随后通过 prepare 创建一个预处理语句,语句中包含三个占位符 ?。然后用 bind_param 将变量绑定到占位符,"sid" 表明第一个参数是字符串,第二个是整数,第三个是浮点数。调用 execute 执行语句后,插入数据到数据库。最后关闭语句和连接。