我试图使用准备好的语句从表中选择数据,如下所示。此方法不起作用。
$sql = "SELECT * FROM `usrs` WHERE `username` = ? ";
$statement = $this->conn->prepare($sql);
if (!statement)
{
throw new Exception($statement->error);
}
$statement->bind_param("s",$username);
$returnValue = $statement->execute();
return $returnValue;
$sql
应该采用以下格式。
$sql = "SELECT * FROM `usrs` WHERE `username` = 'username' ";
但是上面的代码没有在用户名周围加上单引号''
我需要将用户名放在两个单引号''之间,如图所示。如果我用
$sql = "SELECT * FROM `usrs` WHERE `username` = username "
这没用。
任何建议如何做到这一点。
请仔细阅读以下内容:
布尔mysqli_stmt :: execute(void)
这意味着它返回布尔值-这不是可用的对象或数组。
您必须获取该语句。
解决方法:
$sql = "SELECT * FROM `usrs` WHERE `username` = ? LIMIT 1";
$statement = $this->conn->prepare($sql);
$statement->bind_param("s",$username);
if ($statement->execute()) {
$result = $statement->get_result();
return $result->fetch_assoc();
}
return null;
PS谢谢@Phil纠正了我在回答中的错误
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句