使用 mysqli 准备语句
准备语句入门
您正在尝试使用准备好的语句,但您的代码遇到错误。该问题源于缺少一个步骤:将参数绑定到准备好的语句。
绑定参数
准备好的语句要求您在执行之前绑定参数。此过程将外部变量与 SQL 查询中的占位符 (?) 相关联。
$name = 'one'; $age = 1; $stmt = $mysqli->prepare("INSERT INTO users (name, age) VALUES (?,?)"); // Bind parameters (typehint: string, integer) $stmt->bind_param('si', $name, $age); // Now you can execute $stmt->execute();
准备语句需要 mysqli 吗?
是的,需要 mysqli用于准备好的陈述。
完成示例
连接:
$mysqli = new mysqli("localhost", "root", "root", "test"); if ($mysqli->connect_errno) { echo "Connection failed: " . $mysqli->connect_error; }
插入:
$stmt = $mysqli->prepare("INSERT INTO users (name, age) VALUES (?,?)"); // Bind parameters (typehint: string, integer) $stmt->bind_param('si', $name, $age); // Insert row $stmt->execute();
选择有错误处理:
$stmt = $mysqli->prepare("SELECT * FROM users WHERE name = ?"); $stmt->bind_param('s', $name); $stmt->execute(); if ($stmt->errno) { echo "Error: " . $stmt->error; } else { $result = $stmt->get_result(); } // Process result
以上是为什么我的 mysqli 准备语句失败,如何正确绑定参数?的详细内容。更多信息请关注PHP中文网其他相关文章!