我正在尝试使用预准备语句从表中选择数据,如下所示。此方法不起作用。
94.192.0.0-94.195.255.255
94.0.0.0-94.15.255.255
93.96.0.0-93.96.255.255
$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' ";
它不起作用。
任何建议如何做到这一点。
答案 0 :(得分:0)
仔细阅读this:
bool 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;
P.S。感谢@Phil在我的回答中修复我的错误