【发布时间】:2014-01-06 09:14:25
【问题描述】:
我一直在尝试使用准备好的语句在 PHP 中编写登录表单,但每次尝试登录时都会收到以下错误:
mysqli_stmt::bind_result():绑定变量的数量与准备好的语句中的字段数量不匹配
这是我的代码:
<?php
$mysqli = new mysqli("localhost", "root" , "" , "security");
$stmt = $mysqli->prepare("SELECT username AND password FROM users WHERE username = ?");
$username = $_POST['name'];
$stmt->bind_param('s', $username);
$stmt->execute();
$stmt->bind_result($password, $username);
$stmt->fetch();
谁能告诉我为什么会这样?
【问题讨论】:
-
您正在绑定 3 个参数,而在您的查询中只有两个。
-
当您查询 SELECT * 并在表中添加或删除字段时,通常会发生这种情况。使用更改表。
-
在我看来,您的 SELECT 子句中有错字 --
AND应该是逗号。
标签: php mysql mysqli prepared-statement