VBA
Sub SendJsonData()
On Error GoTo ErrorHandler
' Create an object for ServerXMLHTTP
Dim xmlhttp As Object
Set xmlhttp = CreateObject("MSXML2.ServerXMLHTTP.6.0")
' Define the URL where the data will be sent
Dim url As String
url = "https://192.168.0.88/xampp/API/P1.php" ' Modify the URL accordingly
' Create the JSON Payload
Dim jsonData As String
Set ws = ThisWorkbook.Sheets("Sheet1")
lastRow = ws.Cells(ws.Rows.Count, "A").End(xlUp).Row
'jsonData = "{""name"":""John"",""value"":30}"
For i = 2 To lastRow
jsonData = "{""name"":""" & ws.Cells(i, 1).Value & """, ""value"":""" & ws.Cells(i, 2).Value & """}"
If i < lastRow Then
jsonData = jsonData & ","
End If
Next i
' Set the Method and open the connection
xmlhttp.Open "POST", url, False
' Bypass SSL Certificates validation (for self-signed certificates only)
xmlhttp.setOption 2, 13056 ' Ignore SSL certificate errors
' Set HTTP Header to indicate that the data is JSON
xmlhttp.setRequestHeader "Content-Type", "application/json"
' Send the JSON data
xmlhttp.send jsonData
' Check the status of the request
If xmlhttp.Status = 200 Then
MsgBox "Data sent successfully: " & xmlhttp.responseText
Else
MsgBox "Error: " & xmlhttp.Status & " - " & xmlhttp.statusText
End If
' Close the connection
Set xmlhttp = Nothing
Exit Sub
ErrorHandler:
MsgBox "Error occurred: " & Err.Description
End Sub
PHP
<?php
// ตั้งค่า Header เพื่อระบุว่าคำตอบเป็น JSON และอนุญาตการเชื่อมต่อ CORS (ถ้าจำเป็น)
header("Content-Type: application/json");
header("Access-Control-Allow-Origin: *");
// ข้อมูลการเชื่อมต่อฐานข้อมูล MySQL
$servername = "192.168.0.88"; // หรือ IP ของเซิร์ฟเวอร์ฐานข้อมูล
$username = "prapop"; // ชื่อผู้ใช้ MySQL (เปลี่ยนตามจริง)
$password = ""; // รหัสผ่านของ MySQL (เปลี่ยนตามจริง)
$dbname = "test"; // ชื่อฐานข้อมูล
// สร้างการเชื่อมต่อฐานข้อมูล
$conn = new mysqli($servername, $username, $password, $dbname);
// ตรวจสอบการเชื่อมต่อ
if ($conn->connect_error) {
die(json_encode([
'status' => 'error',
'message' => 'Connection failed: ' . $conn->connect_error
]));
}
// ตรวจสอบว่าคำขอเป็น POST หรือไม่
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
// รับข้อมูล JSON ที่ส่งมา
$json = file_get_contents('php://input');
// แปลง JSON ให้เป็น Array หรือ Object
$data = json_decode($json, true);
// ตรวจสอบว่าการแปลงสำเร็จหรือไม่
if ($data === null) {
// กรณีที่ข้อมูล JSON ไม่ถูกต้อง
echo json_encode([
'status' => 'error',
'message' => 'Invalid JSON'
]);
} else {
// เข้าถึงข้อมูลที่ส่งมา
$name = $data['name'];
$value = $data['value'];
// เตรียมคำสั่ง SQL สำหรับบันทึกข้อมูล
// ตรวจสอบว่า prepare สำเร็จหรือไม่
$stmt = $conn->prepare("INSERT INTO T1 (name, value) VALUES (?, ?)");
if ($stmt === false) {
die(json_encode([
'status' => 'error',
'message' => 'Prepare failed: ' . $conn->error
]));
}
$stmt->bind_param("si", $name, $value); // ผูกตัวแปรเพื่อป้องกัน SQL Injection
// ตรวจสอบการบันทึกข้อมูล
if ($stmt->execute()) {
// สำเร็จ
echo json_encode([
'status' => 'success',
'message' => 'Data inserted successfully',
'name' => $name,
'value' => $value
]);
} else {
// เกิดข้อผิดพลาด
echo json_encode([
'status' => 'error',
'message' => 'Error inserting data: ' . $stmt->error
]);
}
// ปิด statement
$stmt->close();
}
} else {
// กรณีที่ไม่ใช่คำขอแบบ POST
echo json_encode([
'status' => 'error',
'message' => 'Only POST requests are allowed'
]);
}
// ปิดการเชื่อมต่อฐานข้อมูล
$conn->close();
?>
MYSQL
CREATE TABLE T1 (
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(255) NOT NULL,
value VARCHAR(255) NOT NULL
);