Heim > Fragen und Antworten > Hauptteil
P粉9304480302023-08-22 21:34:58
使用mysqli_fetch_row()
。尝试这样做:
$query = "SELECT ssfullname, ssemail FROM userss WHERE user_id = ".$user_id; $result = mysqli_query($conn, $query); $row = mysqli_fetch_row($result); $ssfullname = $row['ssfullname']; $ssemail = $row['ssemail'];
P粉2657249302023-08-22 12:11:29
当只需要一个结果时,不需要使用循环。直接获取行。
如果需要将整行数据获取为关联数组:
$row = $result->fetch_assoc();
如果只需要一个值,从PHP 8.2开始:
$value = $result->fetch_column();
或者对于较旧版本:
$value = $result->fetch_row()[0] ?? false;
以下是不同用例的完整示例
当在查询中使用变量时,必须使用预处理语句。例如,假设我们有一个变量$id
:
PHP >= 8.2
// 获取单行数据 $sql = "SELECT fullname, email FROM users WHERE id=?"; $row = $conn->execute_query($query, [$id])->fetch_assoc(); // 如果只需要一个值 $sql = "SELECT count(*) FROM users WHERE id=?"; $count = $conn->execute_query($query, [$id])->fetch_column();
旧版本的PHP:
// 获取单行数据 $query = "SELECT fullname, email FROM users WHERE id=?"; $stmt = $conn->prepare($query); $stmt->bind_param("s", $id); $stmt->execute(); $result = $stmt->get_result(); $row = $result->fetch_assoc(); // 如果只需要一个值 $query = "SELECT count(*) FROM userss WHERE id=?"; $stmt = $conn->prepare($query); $stmt->bind_param("s", $id); $stmt->execute(); $result = $stmt->get_result(); $count = $result->fetch_row()[0] ?? false;
上述过程的详细解释可以在我的文章中找到。为什么必须遵循这个过程的原因在这个著名的问题中有解释
在您的情况下,查询中没有要使用的变量,您可以使用query()
方法:
$query = "SELECT fullname, email FROM users ORDER BY ssid"; $result = $conn->query($query); // 如果需要一个数组 $row = $result->fetch_assoc(); // 或者如果只需要一个值 $value = $result->fetch_row()[0] ?? false;