I have simple PHP script that returns me user object, and it looks like this
<?php
require_once '../dbConnect.php';
session_start();
if (empty($_SESSION["id"])) {
http_response_code(401);
return;
}
$stmt = $mysqli->prepare("SELECT id, firstName, lastName, email FROM users WHERE id = ?");
$stmt->bind_param("i", $_SESSION["id"]);
$stmt->execute();
$stmt->bind_result($id, $firstName, $lastName, $email);
$stmt->fetch();
$member['id'] = $id;
$member['firstName'] = $firstName;
$member['lastName'] = $lastName;
$member['email'] = $email;
echo json_encode($member);
$stmt->close();
$mysqli->close();;
?>
My question: Is there a better way to return json object than this, where i need to create object with every property, is there something more "automatic" for this kind of stuff ?
$member['id'] = $id;
$member['firstName'] = $firstName;
$member['lastName'] = $lastName;
$member['email'] = $email;
echo json_encode($member);
I'm asking this because i had this same script written like this, but i change it to prepared statement because of performance and security
<?php
require_once '../dbConnect.php';
session_start();
if (empty($_SESSION["id"])) {
http_response_code(401);
return;
}
$memberId = $_SESSION["id"];
$query="SELECT id, firstName, lastName, email FROM users WHERE id='$memberId'";
$result = $mysqli->query($query) or die($mysqli->error.__LINE__);
$member = mysqli_fetch_assoc($result);
echo json_encode($member);
$mysqli->close();
?>
and i used simply
$member = mysqli_fetch_assoc($result);
echo json_encode($member);