WordPress錯誤:Missing argument 2 for wpdb::prepare()

本文目錄1報錯原因2解決辦法

使用WordPress 3.5 的朋友在使用某些外掛時,也許會遇到這樣的WordPress錯誤:Missing argument 2 for wpdb::prepare():

wpdaxue.com-201212226

報錯原因

從提示語來看,是缺少瞭 wpdb::prepare() 的第二個參數,從技術上 WordPress 這樣修改 prepare 並沒有錯,因為這是用來組裝 SQL 語句的方法, 按常理來說必須有帶變量的字符串作為第一個參數和第二個作為變量的參數,這是為瞭避免 SQL 註入所引起的安全問題。但是 WordPress 從 2.2 或者更早版本允許瞭忽略第二個參數的寫法, 現在突然令第二個參數成為必填, 必然導致很多主題和外掛不能正常使用。

解決辦法

1.打開出錯的文件(類似上圖加亮的文件),還有出錯行數,這樣我們可以很方便地找到出錯的地方,或者搜索$wpdb->prepare

2.為該方法添加一個空串作為第二個參數, 比如: $wpdb->prepare('xxx'); 改為 $wpdb->prepare('xxx', ''); 即可.

發佈留言