การเก็บข้อมูลและแสดงข้อมูล json PHP PDO ประยุกต์ใช้ทำเว็บไซต์

PHP Knowledge เป็น บอร์ดรวามความรู้ php เน้นบทความ แนวทางการเขียนโปรแกรม บันทึกกันลืม เพื่อให้สมาชิกได้เขียนความรู้ที่ตัวเองมีให้สมาชิกท่านอื่นๆ ได้ เข้ามาอ่าน และ ไว้อ่านเองกันลืมด้วย

Moderator: mindphp, ผู้ดูแลกระดาน

ภาพประจำตัวสมาชิก
Thanapoom1514
PHP VIP Members
PHP VIP Members
โพสต์: 4329
ลงทะเบียนเมื่อ: 04/07/2022 9:46 am

การเก็บข้อมูลและแสดงข้อมูล json PHP PDO ประยุกต์ใช้ทำเว็บไซต์

โพสต์ที่ยังไม่ได้อ่าน โดย Thanapoom1514 »

PHP PDO คือมันเอาไว้เชื่อมต่อและทำงานกับฐานข้อมูลได้หลายแบบบวกอีกว่ามันทำงานเร็วอีกตัวที่เราสามารถนำไปใช้ได้ PDO ก็จะมีชื่อเต็มว่า PHP Data Object ซึ่งเป็นตัวช่วยในการทำงานเชิงวัตถุได้ดีมากตัวหนึ่ง การเขียน PDO ไม่ต้องปรับคำสั่งเวลาเปลี่ยนชนิด databases ซึ่งทำให้มีความยืดหยุ่นในการเปลี่ยน และยังสามารถทำงานกับฐานข้อมูลแบบต่าง ๆ ได้ โยที่ยังใช้ฟังก์ชันทำใ้ลดการเปลี่ยนแปลงในส่วนของโปรแกรมได้

ซึ่งเราสามารถทดสอบใช้งาน PDO ว่าเราสามารถใช้งานใน PDO ได้หรือไม่ ซึ่งจะมีตัวอย่างดังต่อไปนี้

โค้ด: เลือกทั้งหมด

<?php
$driver = PDO::getAvailableDrivers();

print_r($driver);

?>
ผลลัพธ์ที่ได้
ตัวอย่างทดสอบใช้งาน PDO
ตัวอย่างทดสอบใช้งาน PDO
ทดสอบใช้งาน PDO.png (2.93 KiB) Viewed 1330 times
เชื่อมต่อฐานข้อมูล
ในการเชื่อต่อฐานข้อมูลใน Mysql นั้น เราจะใช้ตัวแปรหรือชุดอักษร 3 ตัวก็คือ DSN (Data Source Name), USername และ Password ตามตัวอย่างต่อไปนี้

โค้ด: เลือกทั้งหมด

<?php
$dsn = "mysql:dbname=test_db; host=127.0.0.1; charset=utf8";
$user = 'root';
$password = '';

try {
    $pdo = new PDO($dsn, $user, $password);
    echo $pdo->query('select version()')->fetchColumn()."<br/>";
    echo $pdo->query('select database()')->fetchColumn()."<br/>";

}
catch (PDOEXception $e)
{
echo 'Connection failed: ' . $e->getMessage();
}
?>
ผลลัพธ์ที่ได้
แสดงเวอร์ชันกับชื่อ databases
แสดงเวอร์ชันกับชื่อ databases
เวอร์ชันกับชื่อ databases.png (2.61 KiB) Viewed 1330 times
พอเรารู้ในการติดต่อฐานข้อมูลแล้วให้ลองสร้างไฟล์ใหม่เป็นชื่อไฟล์ว่า class_content.php ของเรา
ไฟล์ index.php

โค้ด: เลือกทั้งหมด

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>PHP PDO</title>
    
</head>

<style>
    *{
        padding: 0;
        margin: 0;
        box-sizing: border-box;
    }
    
</style>
<body>
<?php
include_once 'class_content.php';
$database = new Database();
$db = $database->getConnection();


?>


</body>
</html>

จากนั้นไปที่ phpmyadmin ไปสร้าง table ใน test_db ชื่อ table คือ test_json จะมี 2 ฟิลด์ เก็บไอดีกับเก็บ json

โค้ด: เลือกทั้งหมด

-- phpMyAdmin SQL Dump
-- version 5.2.0
-- https://www.phpmyadmin.net/
--
-- Host: 127.0.0.1
-- Generation Time: Jan 18, 2023 at 04:17 PM
-- Server version: 10.4.24-MariaDB
-- PHP Version: 8.1.6

SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO";
START TRANSACTION;
SET time_zone = "+00:00";


/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8mb4 */;

--
-- Database: `test_db`
--

-- --------------------------------------------------------

--
-- Table structure for table `test_json`
--

CREATE TABLE `test_json` (
  `id` int(11) NOT NULL,
  `data_json` text CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL CHECK (json_valid(`data_json`))
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

--
-- Indexes for dumped tables
--

--
-- Indexes for table `test_json`
--
ALTER TABLE `test_json`
  ADD PRIMARY KEY (`id`);

--
-- AUTO_INCREMENT for dumped tables
--

--
-- AUTO_INCREMENT for table `test_json`
--
ALTER TABLE `test_json`
  MODIFY `id` int(11) NOT NULL AUTO_INCREMENT;
COMMIT;

/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
ตาราง test_json
ตาราง test_json
table.png (34.79 KiB) Viewed 1330 times
จากนั้นให้เราสร้าง data array ข้อมูล json ซึ่ง json ก็คือรูปแบบการรับส่งข้อมูลที่แบบเข้าใจง่ายระหว่างเซิฟเวอร์และไคลเอนต์ ซึ่งเราจะเอา php pdo มาเก็บข้อมูล json
ตัวอย่างไฟล์ index.php
เรามีข้อมูล json ชุดหนึ่ง

โค้ด: เลือกทั้งหมด

$data_json  = '[{"id":1,"username":"red","email":"[email protected]"}]';
ในส่วนวิธีเก็บข้อมุล

โค้ด: เลือกทั้งหมด

$data_json  = array("id"=>1, "username" => "red", "email" => "[email protected]");

$data= json_encode($data_json , true);

$stmt = $db->prepare("INSERT INTO test_json (data_json) VALUES (?)");
$stmt->bindParam(1, $data);

if ($stmt->execute())
{
        echo "เพิ่มข้อมูลแล้ว";
}
else{
    echo "เพิ่มข็อมูลไม่ได้";
}
unset($db);
ผลลัพธ์ที่ได้
เพิ่มข้อมูล
เพิ่มข้อมูล
add data.png (1.58 KiB) Viewed 1330 times
ข้อมูลเข้ามาใน table แล้ว
ข้อมูลเข้ามาใน table แล้ว
ข้อมูล json.png (18.31 KiB) Viewed 1330 times
ตัวอย่างการดึงข้อมูลมาแสดงจาก database

โค้ด: เลือกทั้งหมด

$sql = "select data_json from test_json";
$result = $db->query($sql);
while($row = $result->fetch(PDO::FETCH_ASSOC))
{
    $data = json_decode($row['data_json']);
    echo $data->id."<br/>";
    echo $data->username."<br/>";
    echo $data->email;
}
unset($db);
ผลลัพธ์ที่ได้
ข้อมูลที่แสดงออกมา
ข้อมูลที่แสดงออกมา
ข้อมูลที่แสดงออกมา.png (2.97 KiB) Viewed 1330 times

ก็นี้จะเป็นตัวอย่างการเก็บข้อมูลใน database และการแสดงข้อมูลจาก json มาโชว์ซึ่งเป็นตัวอีกแบบหนึ่งในการเก็บข้อมูลเราไม้ต้องมาเพิ่มฟิลด์ใช้เป็นจำนวนมาก ๆ บวกกลับเราจะมานำมาประยุกต์ใช้อย่างไรในการพัฒนาเว็บไซต์ของเรา เช่น ทำเว็บแอปพลิเคชัน แลกเปลี่ยนข้อมูลระหว่างเซิฟเวอร์และไคลเอนหรือเรียกว่า Web service เป็นต้น

อ้างอิง
https://www.mindphp.com/forums/viewtopic.php?t=22108
https://www.w3resource.com/php/pdo/php-pdo.php
https://oarkm.oas.psu.ac.th/blog/86
:gfb:
  • Similar Topics
    ตอบกลับ
    แสดง
    โพสต์ล่าสุด

ผู้ใช้งานขณะนี้

สมาชิกกำลังดูบอร์ดนี้: ไม่มีสมาชิกใหม่ และบุคลทั่วไป 62