2013年4月16日 星期二

[PHP]mysql和mysqli的差別

在碰資料庫的時候,本人常常會使用到mysqli_query(),但也有一種函式是mysql_query(),兩者到底有什麼差別呢?


mysql_query和mysqli_query其實功能性是差不多的。但以資料的筆數多寡來看的話,mysql_query的執行速度會比mysqli_query來的好,那也許會想既然mysql_query那麼快,那全部都使用mysql_query就好了,mysqli_query就把它丟在一旁好了...(mysqli_query在哭泣...)

當然官方設置mysqli_query一定有它的用處,在一些脫逃字元裡,也就是Escape,其實mysqli_query會自己去做特別的處理,不用你去處理那些東西,而mysql_query就沒有Escape的功能,如果要有Escape的功能,就必須自己加上mysql_real_escape_string()去處理脫逃的字元。


如果說你常常在insert to 、update set 資料庫的資料,都需要mysql_real_escape_string()去做處理,那麼在這mysqli_query就是最佳的幫手了(mysqli_query重見光明了...)。

而且在SQL injection這種攻擊下mysqli也可以達到防止的功能,在安全性上來講,還是有它必要的存在趨勢;另外mysqli有支援 SSH 加密連線。

1 則留言:

  1. 即使使用了mysqli_query(),還是要用mysqli_real_escape_string()做脫逸呦

    回覆刪除