|
數據庫是WEB大多數應用開發的基礎。如果你是用php,那么大多數據庫用的是MYSQL也是LAMP架構的重要部分。
php看起來很簡單,一個初學者也可以幾個小時內就能開始寫函數了。但是建立一個穩定、可靠的數據庫確需要時間和經驗。下面就是一些這樣的經驗,不僅僅是MYSQL,其他數據庫也一樣可以參考。
1、使用MyISAM而不是InnoDB
MySQL有很多的數據庫引擎,單一般也就用MyISAM和InnoDB。
MyISAM是默認使用的。但是除非你是建立一個非常簡單的數據庫或者只是實驗性的,那么到大多數時候這個選擇是錯誤的。MyISAM不支持外鍵的約束,這是保證數據完整性的精華所在啊。另外,MyISAM會在添加或者更新數據的時候將整個表鎖住,這在以后的擴展性能上會有很大的問題。
解決辦法很簡單:使用InnoDB。
2、使用php的mysql方法
php從一開始就提供了MySQL的函數庫。很多程序都依賴于mysql_connect、mysql_query、mysql_fetch_assoc等等,但是php手冊中建議:
如果你使用的MySQL版本在4.1.3之后,那么強烈建議使用mysqli擴展。
mysqli,或者說MySQL的高級擴展,有一些優點:
- 有面向對象的接口
- prepared statements(預處理語句,可以有效防止SQL-注入攻擊,還能提高性能)
- 支持多種語句和事務
另外,如果你想支持多數據庫那么應該考慮一下PDO。
3、不過濾用戶輸入
應該是:永遠別相信用戶的輸入。用后端的php來校驗過濾每一條輸入的信息,不要相信Javascript。像下面這樣的SQL語句很容易就會被攻擊:
$username = $_POST["name"];$password = $_POST["password"];
$sql = "SELECT userid FROM usertable WHERE username='$username'AND password='$password';"; // run query...
it知識庫:10個PHP開發者常犯的MySQL錯誤,轉載需保留來源!
鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。