เนื่องจาก Google Sites ไม่รองรับการเชื่อมต่อ MySQL โดยตรง ดังนั้นจึงต้องใช้ Google Apps Script ในการเชื่อมต่อ MySQL และแสดงผลข้อมูลใน Google Sites ได้ โดยมีขั้นตอนดังนี้
เริ่มต้นด้วยการสร้าง Google Sheet เพื่อเป็นตัวกลางในการเชื่อมต่อ MySQL และ Google Sites
ใช้ Script ของ Google Apps Script เพื่อเชื่อมต่อ MySQL และดึงข้อมูลจาก MySQL มาแสดงใน Google Sheets
สร้าง Google Sites และเรียกใช้ข้อมูลจาก Google Sheets โดยใช้แท็ก HTML หรือแท็กอื่น ๆ เพื่อแสดงผลข้อมูลในหน้าเว็บไซต์
ตัวอย่าง Script สำหรับเชื่อมต่อ MySQL และดึงข้อมูลมาแสดงใน Google Sheets ดังนี้
function getDataFromMySQL() {
// กำหนดข้อมูลการเชื่อมต่อ MySQL
var address = 'database_address';
var user = 'username';
var userPwd = 'user_password';
var db = 'database_name';
var instanceUrl = 'jdbc:mysql://' + address + '/' + db;
var conn = Jdbc.getConnection(instanceUrl, user, userPwd);
// กำหนด SQL Query และดึงข้อมูลจาก MySQL
var stmt = conn.createStatement();
var results = stmt.executeQuery('SELECT * FROM table_name');
// สร้างตารางใน Google Sheets และเพิ่มข้อมูล
var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
sheet.getRange(1, 1, 1, results.getMetaData().getColumnCount()).setValues([getHeaderRow(results)]);
sheet.getRange(2, 1, results.getMetaData().getColumnCount(), results.getMetaData().getColumnCount()).setValues(getData(results));
}
// ดึงข้อมูล Column Header
function getHeaderRow(resultSet) {
var metaData = resultSet.getMetaData();
var numColumns = metaData.getColumnCount();
var headers = [];
for (var i = 1; i <= numColumns; i++) {
headers.push(metaData.getColumnName(i));
}
return headers;
}
// ดึงข้อมูลจาก MySQL และส่งคืนข้อมูลในรูปแบบ Array 2 มิติ
function getData(resultSet) {
var metaData = resultSet.getMetaData();
var numColumns = metaData.getColumnCount();
var rows = [];
while (resultSet.next()) {
var row = [];
for (var i = 1; i <= numColumns;