我的查询在我的php代码中返回null,但是当我在phpmyadmin中输入相同的查询时,它返回它所属的行。这是我正在使用的数据库
CREATE TABLE `payment`.`users`(
`u_id` int(12) NOT NULL AUTO_INCREMENT,
`email` varchar(255) NOT NULL,
`passwd` varchar(100) NOT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY (`email`)
) ENGINE=MyISAM;
这是我正在使用的代码,当它在phpmyadmin中清楚地工作时返回null。
function getUserId($email, $passwd) {
$mysqli = db_connect();
$query = "SELECT `u_id` FROM `payment`.`users` WHERE `email`='$email' AND `passwd`='$passwd' ORDER BY 1";
if ($stmt = $mysqli->prepare($query)) {
/* execute query */
$stmt->execute();
$stmt->bind_result($u_id);
while ($stmt->fetch()) {
return $u_id;
}
}
}
答案 0 :(得分:-1)
问题是你在php代码中使用变量来设置值。在phpMyAdmin中,您直接插入值,因此问题可能在插入的值中。
首先使用 PDO 的bindParam()或 mysqli 的{{3他们清理输入并帮助您避免bind_param()的语句。 使用预准备语句和绑定参数的第二个好处是,您可以指定绑定到查询的数据类型,在大多数情况下,这将解决此类问题。虽然在你的情况下,你可能正在插入字符串。