2009-10-07 59 views
9

我一直在php中使用pear包多年。我正在升級/移動使用MDB2 pear軟件包的站點,但尚未針對PHP 5.3.X進行更新。PEAR上的替換:PHP 5.3上的MDB2

在5.3中,MDB2正在返回這些新的煩人錯誤。

Unknown: Assigning the return value of new by reference is deprecated in /usr/local/lib/php/MDB2.php on line 390 

我知道我可以更改我的錯誤報告設置以擺脫它們,但我寧願不做任何例外。無論如何,現在是否有其他人使用MDB2並有解決方案?你有推薦的類似的數據庫軟件包嗎?

回答

9

我會definitly去的ORM,至少如果你正在從事一個大項目,爲您不想使用mysqli_*或直接使用PDO功能/方法 - Doctrine是最爲發展/使用的,現在是(這是symfony Framework的默認ORM,可以很容易地集成到Zend Framework中)

關於E_DEPRECATED錯誤,雖然:PHP 5.3很年輕,許多圖書館/軟件/項目還沒有適應 - 你可能會在接下來的幾個月有很多這樣的:-(

+0

是的,我同意關於PHP 5.3的不成熟,而據我所知,這將需要一些時間讓我們所有的更新我們的代碼,但我不認爲MDB2永遠不會被更新(對我不離不棄的表情)。 學說很好看。謝謝。 – mattweg 2009-10-07 16:04:33

+0

不客氣:-)有它的樂趣! – 2009-10-07 16:30:54

7

我會對此發表評論,因爲它的高即將在谷歌搜索結果的問題

我接觸了MDB2的首席開發人員,誰說:

請出來自SVN的MDB2副本,完全兼容PHP5.3,性能提升很多秒。我目前正在等待一些修復新的SQL Server驅動程序(微軟正在爲此工作),然後我將推出一個新的穩定版本。

(編輯,4年後:這不再是正確的,不這樣做)

0

我得到了所有不推薦使用的錯誤和警告,使用MDB2和PHP 5.3, ,但我已經得到了MDB2一些非常奇怪的錯誤,所以想知道怎麼了在引擎蓋下。 我的環境是CentOS的,PHP 5.3,MDB2-2.4.1中,MySQL 5.0.77

任何時候,我用自動成交2X在一個PHP文件,第二個是失敗(也一樣,如果我嘗試使用做準備,然後執行)。我一直在登錄到我的MySQL查詢日誌,而一個成功的INSERT將顯示值,一個失敗的INSERT將始終只有佔位符。即:值(?,?,?,?)。而MDB2_Error總會提到遞推

lastInsertID()從來沒有與MySQL表和自動增量字段(mysqli的驅動程序) 我沒有足夠的調試就可以了,深入到調用堆棧,結果得到的這樣結束工作在對象中,直到最後,你不能說出它是什麼。 我更喜歡使用MDB2,但事實上,由於這些問題,我不得不恢復到直連mysql。也許盧卡斯或其他開發者可能會對這個問題有所瞭解,或者指出我們正確的方向。

+1

http://pear.php.net/bugs/bug.php?id=18050說,你需要從2.4.1升級MDB2版本2.5.0b3 – MECU 2012-09-28 02:38:34

9

您也可以通過命令行升級到公測版本3

pear upgrade MDB2-beta 
pear upgrade MDB2_Driver_Mysql-beta 

爲什麼當前穩定版本是嚴格的錯誤報告不符合說明: http://pear.php.net/bugs/bug.php?id=9756

來源爲下面的命令:
http://pear.php.net/bugs/bug.php?id=18050

+0

剛拋出這個在那裏 - 我使用更新到MDB2-β上面的命令和我的網站開始打破,而不會引發錯誤。仍然試圖找出如何解決與目前有問題的客戶端目前正在被破壞的網站。 – 2015-11-23 20:30:44

+0

編輯:好它實際上是從郵件/隊列中的致命錯誤的bug,這是最近引入的。我在那裏時更新了我的梨包,這就是我介紹這個bug的方式。看起來修補程序還沒有完成更新,但是很容易自己編輯文件。 – 2015-11-23 20:54:44