星期四, 8月 26, 2010

20100826 PHP-MySQL-CLASS 12

20100826  PHP-MySQL-CLASS 12

CSV 檔案匯出及匯入 [ 使用 class 講義 ]

匯出
  • 以 mysql 指令加上 select 語法
  • 匯出檔案位於資料庫所在的目錄內
    • Windows ( Appserv ):  Appserv\MySQL\data\資料庫
    • Linux:   /var/mysql/data


Q: 為何 uploadcsv.php 在 IE 是空白的?
A:
  • 缺少 < meta >  標籤
  • < meta >標籤在 < title > 之後
    • 請調整順序
  • 以上 2 點只在 IE 下發生, 其他瀏覽器不會發生


透過表單匯入 CSV 檔案
  • CSV  檔案為資料表資料, 分隔符號為,
    • phpmyadmin 匯出資料的分隔符號為 ; php 網頁內自訂分隔符號為 ,  且 excel 設定為 , 所以請留意 CSV 的分隔符號
  • 檔案上傳後, 使用 fopen(  ) 開啟檔案, 最後以 fclose(  ) 關閉檔案, 開啟檔案時, 逐列讀取 ( Q: 如何知道 欄位如何分隔 ?)
  • 由練習可知, MySQL 允許一次新增多筆資料 ( 請將 $sql echo 出來查看 )


CSV  下載
  • 因為不需在瀏覽器顯示,  所以不需 html 標籤, 使用  header(  )  函數指定檔案類型
  • show columns from student1 是 MySQL 的指令, 指 "顯示 student1 資料表攔位資訊"


MyISAM 與 Innodb 差別
  • 兩者均是 MySQL 資料庫引擎
  • Innodb 的功能為 "交易”, 資料更改時,其他人不能更改
  • Innodb 較耗資源, MySQL預設關閉
  • 資料庫若為 Innodb, 資料庫存取語法亦要增改, 不是引擎改了就有交易功能.


my.ini [ Linux 內可能是 my.cnf ] 設定
  • 若要使用 innodb,  請取消 skip_innodb
  • read_buffer_size 若太小,  讀取資料可能會中斷 ( 若MySQL 內有二進位資料 ,建議調大 )


*當 php 網頁以圖形, pdf, CSV 等形式呈現, 不能有網頁輸出, 引用檔案亦不能有 echo 或是空格出現

資料庫網頁建議
  1. 新增
  2. 列表
  3. 更新
  4. 刪除
  5. 列表以下兩個二選一
    1. 加分頁
    2. 加查詢
  6. 列表加分頁及查詢


更新及刪除須確認資料是不是唯一的資料
  • 一般都是以主索引欄位作為 Hyperlink 所攜帶的參數內容

沒有留言: