预处理语句

把用户输入直接拼进 SQL 是注入重灾区。mysqli 的预处理用 ? 占位、mysqli_stmt_bind_param 绑定参数,数据库先编译语句再填值,恶意代码拼不进去。

预处理语句要点

预处理语句示例

						$conn = mysqli_connect("127.0.0.1", "app_user", "app_pass", "shop_db");
						$stmt = mysqli_prepare($conn, "SELECT order_id, amount FROM orders WHERE user_id = ?");
						mysqli_stmt_bind_param($stmt, "i", $uid);
						$uid = 1;
						mysqli_stmt_execute($stmt);
						$res = mysqli_stmt_get_result($stmt);
						while ($row = mysqli_fetch_assoc($res)) {
						    echo $row["order_id"] . "\n";
						}
						mysqli_stmt_close($stmt);
						mysqli_close($conn);
避坑提醒:类型字符写错比写少更隐蔽:比如把价格写成 s(字符串)去比大小,可能永远匹配不上,务必按真实类型填。
预处理语句 · PHP 连接 知识卡片
卡片 04 / 08 · PHP 连接(1080×1440 速查卡片)

PHP 连接知识点