从数据库中检索特定行并显示特定行中的所有数据并使用 php 发送 json

Retrieve specific row from database and display all the data in the specific row and send json using php

我想使用 php 和 mysqli 从数据库中检索特定行。

例如:

我想检索 userid =2 的数据行

$userid =2;

然后我使用给定的 $userid 从数据库中获取用户电子邮件、姓名、密码:

include("includes/connect.php");
$user = "SELECT * FROM account WHERE user_id = $userid " ;
$query = mysqli_query ($conn,  $user);        

while($result = mysqli_fetch_array ($query)){
      $name = $result['username'];
      $password = $result['user_password']; 
      $email = $result['user_email'];           
  }

那我想把userid=2的用户名、密码和邮箱发到json的手机应用程序。

之后我该怎么做?

你需要用json_encode传递数据:

$data = array();
while($result = mysqli_fetch_array ($query)){
  $data['username'] = $result['username'];
  $data['user_password'] = $result['user_password']; 
  $data['user_email'] = $result['user_email'];           
}

echo json_encode($data);

您还可以使用 mysqli_fetch_assoc 从数据库中检索 json 数据:

$row=mysqli_fetch_assoc($query)
echo json_encode($row);

More information about mysqli_fetch_assoc function.

注意,如果您确定只有一行会 return(在这种情况下我认为只有一行会 return,因为通常 user_id 是唯一的),则不需要使用 while.

首先你需要添加这一行header('Content-Type: application/json'); 将 json 文件输出到浏览器,并查看 while 循环中的变化,然后调用函数 json_encode()

header('Content-Type: application/json');

include("includes/connect.php");
$user = "SELECT * FROM account WHERE user_id = $userid " ;
$query = mysqli_query ($conn,  $user);        

$json = array();

while($result = mysqli_fetch_array ($query)){
      $json['name'] = $result['username'];
      $json['password'] = $result['user_password']; 
      $json['email'] = $result['user_email'];           
  }

echo json_encode($json);

阅读节点:

http://php.net/manual/en/function.json-encode.php