如何获取和return查询结果?
How to fetch and return query results?
我正在创建一个函数,该函数应该从数据库中获取名字和姓氏以及 return 查询。不过有些地方不对。
名字和姓氏不显示。我没有收到任何错误或警告,我已经尝试了本网站和其他网站提供的所有答案(虽然不多)。
有人能告诉我它有什么问题吗?
public function getFirstAndLastName() {
$username = $this->user['username'];
$query = $this->con->prepare("SELECT first_name, last_name FROM users WHERE username = ? ");
$query->bind_param("s", $username);
$query->execute();
$query_result = $query->get_result();
$query_result->fetch_array();
while ($row = $query_result->fetch_assoc()) {
$row['first_name'];
}
return $row;
}
尝试使用 $query->bind_param(":username", $username)
并在查询中更改 ?通过 :respuesta
"SELECT first_name, last_name FROM users WHERE username = :username
查看文档并为我糟糕的英语道歉
https://www.php.net/manual/es/pdostatement.bindparam.php
首先,如果你想找到一个更好的方法,你可以使用这个
public function getFirstAndLastName() {
$username = $this->user['username'];
$query = $this->con->prepare("SELECT first_name, last_name FROM users WHERE username = ? ");
$query->bind_param("s", $username);
$query->execute();
$query_result = $query->get_result();
$result = $query_result->fetch_all(MYSQLI_ASSOC);
Return $result;
}
mysqli 有一个方便的函数,可以立即从查询结果中 returns 一个数组:mysqli_fetch_all()。所以而不是这条线
while ($row = $query_result->fetch_assoc()) {
$row['first_name'];
}
它可能只是一行:
$result = $query_result->fetch_all(MYSQLI_ASSOC);
如果您想找到函数为什么会 return 无效的答案,我会为您解释:
你的代码有一些错误
首先当你执行这一行时$query_result->fetch_array();
实际上你只是清空了 mysqli 缓冲区!所以你在缓冲区中没有任何东西可以在这一行中捕获它 - > while ($row = $query_result->fetch_assoc()) {
另一方面,即使缓冲区中有内容,您也不会在这一行中执行任何操作 ->
$row['first_name'];
如果您想更正您的代码,您应该像这样编写代码 ->
首先对这一行进行评论 -> $query_result->fetch_array();
public function getFirstAndLastName() {
$username = $this->user['username'];
$query = $this->con->prepare("SELECT first_name, last_name FROM users WHERE username = ? ");
$query->bind_param("s", $username);
$query->execute();
$query_result = $query->get_result();
//$query_result->fetch_array();
while ($row = $query_result->fetch_assoc()) {
$result[] = $row['first_name'];
}
return $result;
}
编辑:
如果你想同时获得名字和姓氏,你必须这样做 ->
public function getFirstAndLastName() {
$username = $this->user['username'];
$query = $this->con->prepare("SELECT first_name, last_name FROM users WHERE username = ? ");
$query->bind_param("s", $username);
$query->execute();
$query_result = $query->get_result();
//$query_result->fetch_array();
while ($row = $query_result->fetch_assoc()) {
$result[] = $row;
}
return $result;
}
我正在创建一个函数,该函数应该从数据库中获取名字和姓氏以及 return 查询。不过有些地方不对。
名字和姓氏不显示。我没有收到任何错误或警告,我已经尝试了本网站和其他网站提供的所有答案(虽然不多)。
有人能告诉我它有什么问题吗?
public function getFirstAndLastName() {
$username = $this->user['username'];
$query = $this->con->prepare("SELECT first_name, last_name FROM users WHERE username = ? ");
$query->bind_param("s", $username);
$query->execute();
$query_result = $query->get_result();
$query_result->fetch_array();
while ($row = $query_result->fetch_assoc()) {
$row['first_name'];
}
return $row;
}
尝试使用 $query->bind_param(":username", $username)
并在查询中更改 ?通过 :respuesta
"SELECT first_name, last_name FROM users WHERE username = :username
查看文档并为我糟糕的英语道歉 https://www.php.net/manual/es/pdostatement.bindparam.php
首先,如果你想找到一个更好的方法,你可以使用这个
public function getFirstAndLastName() {
$username = $this->user['username'];
$query = $this->con->prepare("SELECT first_name, last_name FROM users WHERE username = ? ");
$query->bind_param("s", $username);
$query->execute();
$query_result = $query->get_result();
$result = $query_result->fetch_all(MYSQLI_ASSOC);
Return $result;
}
mysqli 有一个方便的函数,可以立即从查询结果中 returns 一个数组:mysqli_fetch_all()。所以而不是这条线
while ($row = $query_result->fetch_assoc()) {
$row['first_name'];
}
它可能只是一行:
$result = $query_result->fetch_all(MYSQLI_ASSOC);
如果您想找到函数为什么会 return 无效的答案,我会为您解释:
你的代码有一些错误
首先当你执行这一行时$query_result->fetch_array();
实际上你只是清空了 mysqli 缓冲区!所以你在缓冲区中没有任何东西可以在这一行中捕获它 - > while ($row = $query_result->fetch_assoc()) {
另一方面,即使缓冲区中有内容,您也不会在这一行中执行任何操作 ->
$row['first_name'];
如果您想更正您的代码,您应该像这样编写代码 ->
首先对这一行进行评论 -> $query_result->fetch_array();
public function getFirstAndLastName() {
$username = $this->user['username'];
$query = $this->con->prepare("SELECT first_name, last_name FROM users WHERE username = ? ");
$query->bind_param("s", $username);
$query->execute();
$query_result = $query->get_result();
//$query_result->fetch_array();
while ($row = $query_result->fetch_assoc()) {
$result[] = $row['first_name'];
}
return $result;
}
编辑:
如果你想同时获得名字和姓氏,你必须这样做 ->
public function getFirstAndLastName() {
$username = $this->user['username'];
$query = $this->con->prepare("SELECT first_name, last_name FROM users WHERE username = ? ");
$query->bind_param("s", $username);
$query->execute();
$query_result = $query->get_result();
//$query_result->fetch_array();
while ($row = $query_result->fetch_assoc()) {
$result[] = $row;
}
return $result;
}