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 ซึ่งจะบันทึกวันที่ให้อัตโนมัติ