JSON 編碼MySQL 查詢結果
使用MySQL 結果時,通常需要將它們轉換為JSON 格式以在Web 應用程式或中使用其他情況。在 PHP 中,內建的 json_encode() 函數通常用於此目的。讓我們來探索如何在 MySQL 查詢結果中使用 json_encode()。
迭代與直接編碼
一種方法是迭代查詢結果的每一行並應用json_encode() 分別對每一行進行編碼。這可以使用 while 或 foreach 迴圈來完成:
$sth = mysqli_query($conn, "SELECT ..."); $rows = []; while($r = mysqli_fetch_assoc($sth)) { $rows[] = json_encode($r); }
此方法允許對 JSON 輸出進行細微控制,但對於大型結果集可能效率較低。
結果對象的直接編碼
另一種方法是直接編碼整個結果對象,它傳回一個JSON 字串表示一次呼叫中的所有行:
$sth = mysqli_query($conn, "SELECT ..."); $rows = mysqli_fetch_all($sth, MYSQLI_ASSOC); $json = json_encode($rows);
使用此方法對於大型結果集更有效,因為它消除了迭代每行並單獨對其進行編碼的需要。
要求
要將json_encode() 與MySQL 查詢結果一起使用,請確保滿足以下要求滿足:
替代方法
現代 PHP 版本也支援 mysqli_fetch_all() 函數,該函數可以取得所有行一次性從結果集轉換為陣列。然後可以將該數組直接編碼為 JSON:
$result = mysqli_query($conn, "SELECT ..."); $rows = mysqli_fetch_all($result); $json = json_encode($rows);
透過使用 mysqli_fetch_all(),可以提高大型結果集的 JSON 編碼效率。
以上是如何使用 PHP 有效率地將 MySQL 查詢結果編碼為 JSON?的詳細內容。更多資訊請關注PHP中文網其他相關文章!