Posts Tagged ‘ mysql

網站套件的「設定檔」安全性問題

這是我在 Facebook 上看到的安全資訊,我覺得很重要,也適用在任何的網站套件上。

以 WordPress 為例,首先,請查看你的 WordPress 目錄下是否有這些檔案:

  • wp-config.php~
  • wp-config.php.2
  • wp-config.php.bak
  • wp-config.php.old
  • wp-config.php.ori
  • wp-config.php.orig
  • wp-config.php.original
  • wp-config.php.sav
  • wp-config.php.save
  • wp-config.php.swp
  • wp-config_php
  • wp-config.php_2
  • wp-config.php_bak
  • wp-config.php_old
  • wp-config.php_ori
  • wp-config.php_orig
  • wp-config.php_original
  • wp-config.php_sav
  • wp-config.php_save
  • wp-config.php_swp

Read more

MySQL 的欄位名稱可以用空白字元

今天被一個 Bug 困住好久,可能是之前自己的手誤造成!!

原因就是...MySQL 的欄位名稱竟然可以使用空白字元,而且還可以放在第一個字元,我真是學藝不精!!

經測試,連資料表的名稱也可以使用空白字元:

CREATE TABLE ` test table` (
` field 1` TINYINT NOT NULL ,
PRIMARY KEY ( ` field 1` )
) ENGINE = MYISAM CHARACTER SET utf8 COLLATE utf8_unicode_ci;

上面看得出我在資料表與欄位的名稱都用了空白字元嗎? 而且還是放在第一個字元!

我想,如果想要陷害別人絕對可以用 MySQL 這一招。

至於處理空白欄位名稱的問題,你可以:

  1. 將錯誤的欄位名稱改掉。
  2. 存取資料表與欄位時,在前後加上 ` `,例如: ` test table`.` field 1`。

 

MySQL 處理字元編碼的一些心得

因為我在寫程式所用的到的 MySQL,同時有 3.x 版及 5.x 版要處理,所以對 MySQL 的字元編碼問題需要特別做研究,研究了一陣子之後,終於有了一些初步的心得,列出舊版及新版的 MySQL 做為比較:
Read more

[轉載]MySQL 的 "SET NAMES xxx" 字元編碼問題分析

轉載自: PHPChina


近來接受 BBT 的培訓,做一個投票系統。系統程式碼倒不是很難,但是我的時間主要花費在了研究字符集和編碼上面。MySQL 和 Apache 兩個系統的編碼(字符集)問題讓我費勁腦筋,吃盡苦頭。網上對這些問題的解決比較零散,比較片面,大部分是提供解決方法,卻不說為什麼。於是我將這幾天收穫總結一下,避免後來者再走彎路。這篇文章對 PHP 編寫有一點幫助(看完你就知道,怎樣讓你的 PHP 程式在大部分空間提供商的伺服器裡顯示正常),但是更多幫助在於網路伺服器的架設和設置。
Read more

phpMyAdmin 的設定值

phpMyAdmin 應該是大家最常用的 MySQL 資料庫管理套件,如果要修改它的預設值,請編輯 phpMyAdmin 目錄下的 “config.inc.php”,以下列出一些我建議修改的參數:
Read more

從 Blogger 轉移到 WordPress 的技巧

本站已經由 GoogleBlogger 轉移到 WordPress,這是轉移到 WordPress 之後的第一篇文章。

用過 WordPress 之後才知道 WordPress 的好,WordPress 相對於 Blogger 的優點如下:

  1. 標籤雲、搜尋、繼續閱讀、最新文章、最新留言、分頁…等等基本功能,已經內建在 WordPress 裡了,不需要辛辛苦苦去改範本、研究程式碼,而 Blogger 往往因為手動加了這些功能,而變得極為擁腫。
  2. 可以上傳圖片、影片、音樂…等檔案,以往這些在 Blogger 裡,都需要再尋找額外的網頁空間存放,並且 WordPress 上傳的圖片會自製縮圖。
  3. 對於讀取權限的控管,WordPress 可以做到完全公開、公開給特用用戶、單篇密碼保護、禁止搜尋引摯、完全隱藏。
  4. WordPress 已經內建幾個知名部落格系統的轉移工具,當然包括 Blogger。
  5. WordPress 同時有免費線上部落格(BSP)部落格架站程式
  6. WordPress 的佈景主題(Themes)更多、更漂亮。
  7. 琳瑯滿目的外掛程式,很難找不到你想要的功能。

Read more

[轉載]資料庫表單及欄位命名規則實例

轉載自: Neo’s Blog


今天大概把幾種常見的資料庫命名方式給整理了一下。

1.資料庫表單(Table)名稱:

單複數皆有人使用,如 products、product。

美國人命名比較喜歡依照口語習慣來用複數命名,知名的 OpenSource 軟體像 phpBB、OSCommerce、In-Link、pLog 皆是以複數命名。而 Moveable Type 則是少數使用單數名命的軟體,台灣人也是單數命名居多。

2.資料庫欄位名稱:

使用 MySQL 的 Opensource 軟體比常見整批性的加前綴(Prefix) 在欄位裡面,如 products 表單中的「產品名稱」,可能就會命名為「products_name」而 Microsoft SQL Server 則是以純欄位名稱居多,如產品名稱就直接取叫「name」了。

前綴的命名有「語意導向」跟「實用導向」二種,所謂語意導向以口語的習慣來命名,像 products 是產品的集合(複數),裡面的每個產品是單數,所以用產品名稱為例就是「product_name」。

而實用導向常見的就是以表單名稱做為前綴,如前例在 products 裡的產品名稱欄位就會命名為「products_name」,如此做的好處是程式會非常清楚每個欄位是從哪個表單抓出來的。但是缺點是在程式裡面語意不清,看起來會很不習慣。

然而大部份的欄位前綴字元還是以語意導向為主,若要使用實用導向,最好表單名稱採用單數(如 Moveable Type),否則像 OSCommerce 的全員複數,感覺程式在用名字就很奇怪,如程式明明就是只抓一筆產品名稱出來,看到 products_name 就覺的既不是複數,而且文法上也不通,意義上反而比較像 product’s name。

3.大小寫:

Microsoft 的命名方式喜歡單字第一個字母大寫,如 OrderDetail。而 MySQL 比較常見全部小寫,單字中間加底線的命名方式,如 order_detal。這跟資料庫的字元大小寫敏感度預設值有關,MS SQL Server 預設是大小寫不分,MySQL 則是大小寫視為不同欄位,所以統一小寫比較不容易出錯。

[轉載]PHP 和 MySQL 開發的 8 個技巧

轉載自: 中文 PHP 資訊站


LAMP 架構的網站,我以前注重的多是安裝/配置方面的,講述開發的相對較少,因為自己從事開發也少。本文的原文當然也來自:

看了以後,頗有啟發,以前開發中遇到的一些問題,迎刃而解。所以翻譯出來和大家共用。

Read more

如何備份 MySQL 的資料庫

突然想到 MySQL 備份的問題,其實 MySQL 本身有一個 “mysqldump” 的指令,可以用來備份/還原資料庫的內容,用這個指令來備份資料通常沒什麼問題,但當你要把資料還原時,除非裡面沒有中文字,否則,中文字的衝碼,經常會導致還原失敗!

解決的方法

  • 方法一: 改用 UTF-8 編碼格式儲存資料,即可繼續使用 mysqldump 指令。
  • 方法二: MySQL 的資料庫放在 [/var/lib/mysql] 下,直接將 [/var/lib/mysql] 下的資料庫目錄用 “tar” 指令備份起來即可(備份及還原前最好先暫停 MySQL 的服務)。
  • P.S.我已經儘量都把程式及資料庫改成 UTF-8 編碼了,但我還是用 “方法二” 來備份資料的。

    return top