標籤
BAT
(38)
shell
(34)
Virtual Machine
(33)
Xubuntu
(29)
acfs
(25)
PHP
(24)
CentOS
(21)
Virtul Box
(20)
編輯器
(17)
資料庫
(15)
lubuntu
(13)
windows
(13)
CPP
(12)
ubuntu
(12)
chrome
(11)
laravel
(10)
Docker
(9)
Python
(9)
5A88
(7)
VMware
(6)
資料結構
(6)
Javascript
(5)
Node
(5)
Proxmox VE
(5)
公告系統
(5)
程式積木
(5)
Android Studio
(4)
ANN
(3)
OB2D2016x64
(3)
Xoops
(3)
clonezilla
(3)
samba
(3)
公文
(3)
其他
(3)
硬體
(3)
API
(2)
Android
(2)
AppInvent2
(2)
Html
(2)
Hyper-V
(2)
Nas
(2)
botnet
(2)
mbot
(2)
swift
(2)
wordpress
(2)
樣板
(2)
防火牆
(2)
AD的應用
(1)
Ansible
(1)
Arduino
(1)
CSS
(1)
GitLab
(1)
HA Proxy
(1)
LegoEV3
(1)
PowerShell
(1)
Scratch
(1)
VM
(1)
XenServer
(1)
kotlin
(1)
linuxmint
(1)
lxc
(1)
2020年11月25日 星期三
2020年11月22日 星期日
2020年11月18日 星期三
2020年11月15日 星期日
2020年11月5日 星期四
2020年11月4日 星期三
紀明村老師的運動檢錄系統程式碼研究心得(一)介接CloudSchool與mysql資料庫
現在研究紀老師的運動檢錄系統程式碼,心中湧起幾個問題。希望能藉由原始碼解決心中的疑惑。由於紀老師使用Sqlite,但內容也有mysql pdo的語法。因此,希望能改寫成mysql的語法。
1.安裝mysql
$sudo apt-get install mysql-server -y
$sudo apt-get install mysql-client -y
$sudo apt-get install libmysqlclient-dev -y
2.安裝phpmyadmin
$sudo apt-get install phpmyadmin -y
一、如何跟CloudSchool的API介接?
1.如何介接?請參考校務系統cloudschool API相關資料及實作與程式碼的關聯
2.介接之後,要如何整理資料?
1.如何介接?請參考校務系統cloudschool API相關資料及實作與程式碼的關聯
檔案名稱:ApiGetData.php
檔案內容:
<?php
// 3.雲端學籍系統內,學校的 API ID
$API_client_id = '學校的 API ID';
// 4.雲端學籍系統內,學校的 API 密碼
$API_client_secret = '學校的 API 密碼';
//取得API資料
$GetApiData = elps_API();
//印出API資料
PP($GetApiData);
function elps_API(){
global $API_client_id,$API_client_secret;
// =================================================
// 學生榮譽榜 (url: https://api.chc.edu.tw)
// 校務佈告欄 (url: https://api.chc.edu.tw/school-news)
// 同步學期資料 (url: https://api.chc.edu.tw/semester-data)
// 更改師生密碼 (url: https://api.chc.edu.tw/change-password)
// API NAME
$api_name = '/semester-data';
//$api_name = '/school-news';
// 更改師生密碼 (url: https://api.chc.edu.tw/change-password)
// API URL
$api_url = 'https://api.chc.edu.tw';
//: https://api.chc.edu.tw/school-news
// 建立 CURL 連線
$ch = curl_init();
// 取 access token
curl_setopt($ch, CURLOPT_URL, $api_url."/oauth?authorize");
// 設定擷取的URL網址
curl_setopt($ch, CURLOPT_POST, TRUE);
// the variable
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($ch, CURLOPT_POSTFIELDS, array(
'client_id' => $API_client_id,
'client_secret' => $API_client_secret,
'grant_type' => 'client_credentials'
));
$data = curl_exec($ch);
$data = json_decode($data);
$access_token = $data->access_token;
$authorization = "Authorization: Bearer ".$access_token;
curl_setopt($ch, CURLOPT_URL, $api_url.$api_name);
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: application/json' , $authorization )); // **Inject Token into Header**
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "GET");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
//curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
$result = curl_exec($ch);
return $result;
}
/* 列印變數*/
function PP($a){
echo "<pre>";print_r($a);
echo "</pre>";exit;
}
?>
二、介接之後,如何取得的資料存入資料庫中?
1.如何用pdo建立資料庫?
2.如何用pdo建立資料表?
1.如何用pdo建立資料庫?
檔案名稱:PdoCreateDatabase.php
檔案內容:
<?php
$school_code='教育部學校代碼';
$MySQL['Host']='localhost';
$MySQL['User']='資料庫使用者';
$MySQL['Pass']='資料庫密碼';
$MySQL['Db']='Sport109_'.$school_code;
try {
//建立資料庫
$CONN =new PDO('mysql:host='.$MySQL['Host'], $MySQL['User'] ,$MySQL['Pass']);
$SQL="CREATE DATABASE ".$MySQL['Db']." CHARACTER SET utf8 COLLATE utf8_general_ci;";
$CONN->exec($SQL) or die($SQL);
backe("!!資料庫 ".$MySQL['Db']." OK!!");
}
catch (Exception $e)
{
backe("!!無法連結資料庫!!");
//die("<center><h2>無法連結資料庫</h2></center>");
}
##################回上頁函式1#####################
function backe($value= "BACK"){
//echo head();
echo "<meta charset='UTF-8'><br><br><CENTER>";
echo "<h4>--== 《系統訊息》 ==--</h4>";
echo "<div align=center onclick='history.back();' style='font-size:12pt;color:#A52A2A;'><b>";
echo $value;
echo "</b><BR></div><h5 onclick='history.back();'>--== 《按下後返回》 ==--</h5>";
exit;
}
?>
2.如何用pdo建立資料表?
(1).先檢查是否可從資料表取出一筆資料?
(1).Y.取得出,表示有此資料表->不建立資料表
(1).N.取不出,表示無此資料表->建立資料表
檔案名稱:PdoCreateTable.php
檔案內容:
<?php
$school_code='教育部學校代碼';
$MySQL['Host']='localhost';
$MySQL['User']='資料庫使用者';
$MySQL['Pass']='資料庫密碼';
$MySQL['Db']='Sport109_'.$school_code;
/*建立連結*/
try {
// for MySQL
$CONN =new PDO('mysql:host='.$MySQL['Host'].';dbname='.$MySQL['Db'], $MySQL['User'],$MySQL['Pass'], array(PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8"));
}
catch (Exception $e)
{
backe("!!無法連結資料庫!!");
//die("<center><h2>無法連結資料庫</h2></center>");
}
/* 建立 stud 資料表*/
$SQL1="select * from `stud` limit 1";
$SQL2="CREATE TABLE `stud`(
`id` INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY,
`stuid` VARCHAR(10) NOT NULL UNIQUE,
`stuname` TEXT NOT NULL,
`idclass` TEXT NOT NULL,
`cla` TEXT NOT NULL,
`seatnum` INT(10) DEFAULT '0',
`sex` TEXT NOT NULL,
`edukey` TEXT,
`created` TEXT,
`modify` TEXT
);";
$rs=$CONN->query($SQL1);
if (!$rs) {
$rs=$CONN->query($SQL2) or die($SQL2);
} else {
backe('Had stud 資料表!');
}
##################回上頁函式1#####################
function backe($value= "BACK"){
//echo head();
echo "<meta charset='UTF-8'><br><br><CENTER>";
echo "<h4>--== 《系統訊息》 ==--</h4>";
echo "<div align=center onclick='history.back();' style='font-size:12pt;color:#A52A2A;'><b>";
echo $value;
echo "</b><BR></div><h5 onclick='history.back();'>--== 《按下後返回》 ==--</h5>";
exit;
}
?>
需要注意的是,同樣是建立資料表stud,建立資料表的語法會有些微不同
MYSQL語法:
CREATE TABLE `stud`(
`id` INTEGER PRIMARY KEY,
`stuid` VARCHAR(20) NOT NULL UNIQUE,
`stuname` TEXT NOT NULL,
`idclass` TEXT NOT NULL,
`cla` TEXT NOT NULL,
`seatnum` INTEGER DEFAULT '0',
`sex` TEXT NOT NULL,
`edukey` TEXT,
`created` TEXT,
`modify` TEXT
);
Sqlite語法:
CREATE TABLE `stud`(
`id` INTEGER PRIMARY KEY,
`stuid` TEXT NOT NULL UNIQUE,
`stuname` TEXT NOT NULL,
`idclass` TEXT NOT NULL,
`cla` TEXT NOT NULL,
`seatnum` INTEGER DEFAULT '0',
`sex` TEXT NOT NULL,
`edukey` TEXT,
`created` TEXT,
`modify` TEXT
);
9.PHP PDO
訂閱:
文章 (Atom)
在 Windows 10 x64 1909版,使用BAT快速安裝公文系統與人事服務網(自然人憑證)版
相關內容移往 https://skjhcreator.blogspot.com/2021/02/windows-10-x64-1909bat.html
-
後篇: 只要用滑鼠點兩下,開啟五種不同瀏覽器瀏覽特定的網頁 讓Chrome瀏覽器自動開啟網頁 檔名:ChromeStart.bat 內容: @echo off start "C:\Program Files (x86)\Google\Chrome\A...
-
下一篇: 只要會用滑鼠點兩下,快速產生一堆的印表機一鍵完成驅動安裝.BAT 使用說明: 以Brother T910DW為例,如何修改一鍵完成印表機安裝驅動BAT,來配合所屬單位的印表機 20200825 感恩頂番國小李清展老師的協助。 有的印表機需要設定列印喜好設定,希望能夠在安...
-
要利用Code::Blocks來完成APCS考試,又不想背太多程式碼。希望考試時,檢測環境能夠出現字體放大、程式碼自動提示與補完。所以就設定Code::Blocks。 1.字體放大 方法(1).按住Ctrl滾滑鼠滾輪,程式代碼的字體會隨你心意變大變小 方法(2)...