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 执行语句后,插入数据到数据库。最后关闭语句和连接。