Devdit
 

PHP เก็บ log ลง Database MySQL/MariaDB

4K

PHP เก็บ log ลง Database MySQL บทความนี้แนะนำการเขียนโค้ดภาษา PHP เพื่อเก็บ log การเข้าชมเว็บไซต์ลงในฐานข้อมูล หรือ Database ของ MySQL/MariaDB พร้อมแสดงข้อมูลด้วยคำสั่ง SQL สามารถเขียนโปรแกรมได้ดังนี้

 

ตัวอย่าง PHP เก็บ log ลง Database MySQL/MariaDB

+---------+-----------+
| Field   | Type      |
+---------+-----------+
| id      | int(11)   | รหัสอ้างอิง logs 
| created | timestamp | เก็บวันที่ที่เข้าชม
| ip      | char(50)  | เก็บหมายเลข IP                 
| agent   | char(255) | เก็บชนิดของโปรแกรมเล่นอินเทอร์เน็ต  
| session | char(255) | เก็บค่า Session ของผู้เข้าชม 
| url     | text      | เก็บ URL ที่เข้าใช้งาน   
+---------+-----------+

 

ตัวอย่าง PHP เก็บ log ลง Database MySQL

<?php
    session_start();

    $ip =  $_SERVER['REMOTE_ADDR'];
    $agent = $_SERVER['HTTP_USER_AGENT'];
    $session = session_id();
    $url = $_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'];

    $conn = mysqli_connect("localhost", "root", "", "demo");
    $sql = " 
            INSERT INTO logs
            (
                id,
                ip,
                agent,
                session,
                url
            ) 
            VALUES
            (
                NULL,
                '{$ip}',
                '{$agent}',
                '{$session}',
                '{$url}'
            )
           ";
    mysqli_query( $conn, $sql );
    mysqli_close( $conn );
?>

ผลลัพธ์

+----+---------------------+-----+----------------------------+-----------------+-----------------+
| id | created             | ip  | session                    | url             | agent           |
+----+---------------------+-----+----------------------------+-----------------+-----------------+
|  1 | 2022-04-19 16:00:33 | ::1 | n5mf3iggiabpuhnl0paud46bnn | localhost/test/ | Mozilla/5.0 (Wi |
+----+---------------------+-----+----------------------------+-----------------+-----------------+
1 row in set (0.000 sec)

คำอธิบาย

PHP เก็บ log ลง Database MySQL/MariaDB ตัวอย่างใช้คำสั่ง mysqli_connect สำหรับการเชื่อมต่อ และประมวลผลคำสั่ง SQL ด้วย mysqli_query โดยมีรายละเอียดข้อมูลที่จัดเก็บ logs ดังนี้

1. ดึงหมายเลข IP Address ด้วยคำสั่ง $_SERVER['REMOTE_ADDR']

2. ดึงชนิดของโปรแกรมเล่นอินเทอร์เน็ต ด้วยคำสั่ง $_SERVER['HTTP_USER_AGENT']

3. ดึงหมายเลข Session ด้วยคำสั่ง session_id

4. ดึง URL ที่ผู้ใช้งานเข้าใช้ ด้วยคำสั่ง $_SERVER['HTTP_HOST'] และ $_SERVER['REQUEST_URI']

5. ข้อมูลวันที่ (created) กำหนเป็นชนิด timestamp ซึ่งจะบันทึกวันที่ให้อัตโนมัติ

แก้ไข 2 ปีที่แล้ว
ชอบ
ลิ้งก์
แชร์
Devdit มีช่อง YouTube แล้ว
เราสร้างวิดีโอเกี่ยวกับเทคโนโลยี ทำตามง่ายๆ