星期二, 8月 17, 2010

20100817 PHP-MySQL CLASS 9

20100817 PHP-MySQL CLASS 9

建立一個 Netbean 的PHP 專案 class9
建立新專案
File → New Project
PHP: PHP Application → Next
點選 Browse 按鈕 建立一個 class9 資料夾( source 按鈕調整於 C:\Appserv\www 目錄下 [網站根目錄] )
Finish
將相關檔案複製到 class8 資料夾

Notes:
  • 接收表單資料後, 變數建議先作分析再丟給一般變數.不建議直接放入 SQL 語法內
    • 資安考量
    • 語法較複雜


select   欄位名稱  from  資料表  where  ( 條件 );
  • 依條件查詢資料表內的欄位內容


1.數值資料
  • >, <, =, >=, <=

2. 文字資料
  • like %關鍵字%’;
    • 相似
  • = 相同

3.通用 ( 文字, 數字皆可 )
  • in(  ,   )
    • 查固定值的欄位內容
  • not  in(  ,   )
    • 查不是固定值的欄位內容
  • is  null  空值
  • not  is null   不是空值




Lab: where 條件查詢

利用 phpMyAdmin 來下指令練習
選取  pcschool 資料庫



執行結果如下 ( 找出 employeeid 大於等於 3 )

相關查詢指令如下

select employeeid,firstname from employees where (employeeid >= 3);
select employeeid,firstname from employees where (employeeid in(2,4,9));
select employeeid,firstname from employees where (employeeid  not in(2,4,9));
select  country,companyname from customers where (country in('Argentina','Mexico'));
select  region,companyname from customers where (region is null);
select  region,companyname from customers where (region is not null);
select  firstname  from  employees  where (firstname like 'a%');
select  firstname  from  employees  where  (firstname  like  '%a%');
select  firstname  from  employees  where  (firstname  like  '%a');

select companyname,contactname,country  from customers  where (country in('France','Germany') and companyname like 'b%');

select companyname,contactname,country  from customers  where (country in('France','Germany')  or  companyname like 'b%');



若有兩個欄位要作判斷, 請加 and 或 or.
  • and 代表 左右兩邊條件均要成立
  • or 代表  左右兩邊一邊成立即成立


$_SERVER[‘HTTP_REFERER’
  • 從那一個網頁引導到該頁 
  • 如果是由 java script  語法連接, 偵測到的可能是空的


Q: 為何  SQL 語法內 $a 及 $b 不用加上 ' ‘ ?

A: 因為這兩個是數字 ( 如果表單輸入的非數字呢?)

“ select  *  from   orders  where customerID=’$a’ ”;
  • 當customerID 等於 $a 變數內容時, 查詢 orders 資料表所有欄位內容 


limit  起始筆數索引值, 總筆數
  • limit 放在 SQL 語法最後
  • 起始筆數索引值由 0 開始, 0 代表第一筆
  • 若只有一個數字, 代表由第一筆開始, 共幾筆資料


檔案上傳
  • form 必須是 post 方式傳送
  • form 必須設定 enctype
  • <input type> 為 file


php uploaded 檔案不是直接放在指定位置,  而是先放在系統暫存區, upload完成後才移動到指定位置

php.ini 及 表單網頁 ( 隱藏欄位, 名為 MAX_FILE_SIZE) 均可對檔案大小設限制
$_FILE[‘表單file欄位’] [‘name’] [‘size’] [‘type’] [‘error’]

沒有留言: