2015-12-23 68 views
4

我正在更新一箇舊網站,其中包含運行一些集成的普通PHP代碼的最新版本的WordPress。 PHP代碼使用舊的mysql_函數來運行數據庫查詢,並且由於我將PHP版本升級到5.6,所以我必須將其刪除。更新WordPress使用mysqli而不是mysql

但是,我開始時只是將mysql_替換爲mysqli_,然而這導致了以下問題。如果你有工作過的查詢:

mysql_query("SELECT..."); 

現在拋出和錯誤,因爲mysqli_query("SELECT...")預計,第一個參數是與數據庫的連接。

一,我能想到的解決方案是使用$wpdb隨處可見,而不是簡單的MySQL的功能,但是,代碼有數以千計的查詢,並更換所有的人都將變成是爲mysqli_query功能有點問題通常跟着mysqli_fetch

我傾向於解決方案是以某種方式獲得從WordPress使用的數據庫連接,保存在一個變量,讓我們說$con,然後只是搜索和替換所有的目前mysqli_query(mysqli_query($con,。我認爲這應該工作,但我不知道如何初始化$con變量,因爲似乎沒有辦法從$wpdb變量獲得連接?所以在這裏兩個問題:

  1. 是否有實際的方式通過$wpdb或其他WordPress方法來初始化$con變量?

  2. 如果答案是否定的,那麼會是明智的,實際上是通過創建新的數據庫的mysqli連接,並用它來運行查詢初始化$con? (我知道答案是否定的,但因此缺乏解決辦法,我可能要踏踏實實地在年底這個選項...)

和獎金的問題:誰能想到一個更好的解決方案/解決方法爲這個問題來自我已經提到的問題?

謝謝!

回答

2

首先,檢查這個tool。它可以幫助從mysql_*遷移到mysqli_*

如果沒有,只是延長WPDB

  1. 寫吸氣劑一類爲 「$胸徑」:

  2. 使用它無處不在,而不是基類(這link 能幫助)

+0

謝謝,我只是想出瞭如何自己做。你可以實際聲明一個'global $ wpdb',然後使用'$ wpdb-> dbh'作爲mysqli_query()中的第一個參數。謝謝! – mmvsbg