簡體   English   中英

PEAR的替換:PHP 5.3上的MDB2

[英]Replacement for PEAR: MDB2 on PHP 5.3

我已經在php中使用梨包多年了。 我正在升級/移動使用MDB2 pear包的網站,但尚未針對PHP 5.3.X進行更新。

在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並有解決方案? 你推薦的是類似的數據庫包嗎?

您還可以通過命令行升級到beta 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

我肯定會去一個ORM,至少如果你正在開展一個大項目,你不想直接使用mysqli_*或PDO函數/方法 - Doctrine是現在最mysqli_* /最常用的(它是symfony框架的默認ORM,可以很容易地集成到Zend Framework中)

但是關於E_DEPRECATED錯誤:PHP 5.3還很年輕,許多庫/軟件/項目尚未適應 - 在未來幾個月你可能會有很多這樣的:-(

我將對此發表評論,因為它在Google搜索結果中出現問題。

我聯系了MDB2的首席開發人員,他說:

請從SVN查看MDB2的副本,它完全兼容PHP5.3,並有許多性能改進。 我目前正在等待對新的SQL Server驅動程序進行一些修復(微軟本周正在研究它),然后我將推出一個新的穩定版本。

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

我剛從http://pear.php.net/package/MDB2/download下載了最新版本的MDB2(MDB2-2.5.0b3),它已經擺脫了我的所有錯誤。 似乎與PHP版本5.3.5一起正常工作

您可以使用Zend Framework數據庫支持或使用DoctrinePropel之類的ORM

如果您只使用MDB2 for MySQL,您可以替換它並使用MDBDid保留大部分功能: http ://azure-dev.kiao.net/648-mdb2您只需要很少的代碼來適應。

我使用MDB2和PHP 5.3解決了所有棄用的錯誤和警告,但我在MDB2上遇到了一些非常奇怪的錯誤,所以想知道怎么了引擎蓋下的。 我的環境是CentOS,PHP 5.3,MDB2-2.4.1,MySQL 5.0.77

任何時候,我在php文件中使用autoExecute 2x,第二個失敗(如果我嘗試使用prepare然后執行則同樣如此)。 我一直在登錄我的MySQL查詢日志,雖然成功的INSERT將顯示值,但失敗的INSERT將始終只有占位符。 即:值(?,?,?,?)。 並且MDB2_Error將始終提及RECURSION

lastInsertID()從未使用MySQL表和自動增量字段(使用mysqli驅動程序)我對它進行了足夠的調試,深入調用堆棧,結果得到了如此包裹在對象中,你無法分辨它是什么,直到最后。 我更喜歡使用MDB2,但事實上,由於這些問題,我不得不多次恢復直接的mysql。 也許盧卡斯或其他開發者可能會對這個問題有所了解,或者指出我們正確的方向。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM