0
目前,我只使用存儲過程,這是否被認爲是良好的做法或不好?我發現將我的SQL代碼與我的PHP代碼分開很有幫助,並且我還記得在PHP課程中聽說我花了幾個學期回來說存儲過程更安全。用PHP編程時最好使用存儲過程還是硬編碼SQL?
目前,我只使用存儲過程,這是否被認爲是良好的做法或不好?我發現將我的SQL代碼與我的PHP代碼分開很有幫助,並且我還記得在PHP課程中聽說我花了幾個學期回來說存儲過程更安全。用PHP編程時最好使用存儲過程還是硬編碼SQL?
過去,存儲過程和預處理語句總是比發送到數據庫的動態SQL字符串更快。現在,儘管有時候情況可能仍然如此,但這些差異如果不是可以忽略的話,也是微不足道的,所以存儲過程的主要好處是可以防止SQL注入攻擊,並且還可以作爲應用程序代碼和數據庫之間的抽象層(允許您跨不同的數據庫API或甚至不同的語言輕鬆使用相同的查詢)。所以一般來說,我仍然希望儘可能使用存儲過程。
將參數發送到存儲過程的數據少於整個SQL語句的數據量,這使得使用存儲過程更快。存儲過程還可以包含多個語句,這意味着從應用程序到數據庫之間的往返行程 - 存儲過程再次具有優勢,因爲時間超過連線並在應用程序中處理之前返回的開銷是無法收回的。 – 2010-07-29 16:37:09
太棒了,我目前有一個函數允許我爲存儲過程構建一個CALL語句。該函數接受一個過程的名稱以及一個填充正在處理的數據的數組,然後它執行這個魔術。這非常簡單和有用,我很高興我不必擺脫它! – 2010-07-29 16:42:37