PHP 長期計畫:廢除 ext/mysql,改用 pdo_mysql 或 mysqli

Hacker News 上看到的長期計畫,要廢除 ext/mysql:「deprecating ext/mysql」。

主要的原因是 security 習慣問題。因為 ext/mysql 不支援 prepare 與 execute 這類不需要自己處理 escape 的函式,所以使用 ext/mysql 的人必須自己處理 escape 的問題,也就是透過 mysql_escape_string 或是 mysql_real_escape_string。而很多書籍為了讓初學者容易了解,會給出很糟的範例,像是:

mysql_query("SELECT * FROM `user` WHERE `username` = '$username';");

$username 沒有先檢查過。

依照提議,目前只會在文件上建議改用 PDO 或是 mysqli,不會對目前版本有任何改變。接下來是 5.5 與 6.0 時會看情況決定要不要加上 E_DEPRECATED

目前的提議還沒有提到何時要拔掉 ext/mysql,不過看起來 6.0 之前應該是不會做...

One thought on “PHP 長期計畫:廢除 ext/mysql,改用 pdo_mysql 或 mysqli”

Leave a Reply

Your email address will not be published. Required fields are marked *