PHP 資料庫基礎
•
學習目標
•
基本原理
•
資料庫連線與選擇
•
執行查詢
•
取回答案
•
SQL Injection
學習目標
•
PHP 跨平台,所以我們的程式也應該要跨資料 庫
•
中文問題複雜,我們必須妥善處理中文編碼
•
使用三種資料庫
− Mysql: 最多人用的網頁資料庫
− Postgresql :最強悍的免費資料庫
− SQLite :最多人用的資料庫,更強的不要錢 Access
基本原理
•
傳統模式與 PDO 模式
− PDO 使用物件導向功能( PHP5 以後)
− 目前先使用傳統模式
•
資料庫使用程序
− 連接 connect :指定 host 與 port ,送入帳號密碼
• 一般連接、 persistent (續存)連接
− 查詢 query, execute :送入 SQL 字串,回傳一個
「資源」
先看個完整的範例
•
http://tphp.vexp.idv.tw/
資料庫連線與選擇
•
Mysql
− $link = mysql_connect('localhost', 'username', 'passwd');
− mysql_select_db('dbname', $link);
•
Postgresql
− $link = pg_connect("host=localhost dbname=dbname user=userid password=xxxx");
執行查詢
•
MySQL
− mysql_query($QUERY,$link);
•
Postgresql
− pg_query($link,$QUERY);
•
執行完都會會傳一個「資源」,藉以取得資料
取回答案
•
取得資料筆數
− pg_num_rows($result);
− mysql_num_rows($result);
•
取得一行資料
− pg_fetch_row($result);
− mysql_fetch_row($result);
•
最後要關閉資料庫
看範例
•
製造一個通訊錄
− 輸入
− 修改
− 刪除
− 查詢
− 認證
SQL Injection
•
要過濾 「單引號」
•
要強制轉換成數字
作業
•