來源:互聯網
上載者:User
關鍵字
thinkphp
thinkphp5
php
學完了 thinkPHP C和V 最後看的 操作資料庫,
之前學的PHP內建的PDO,感覺也會用了,
現在thinkPHP 也自己帶了一套 操作資料庫的 類。
我看了看教程,再學習也挺繁瑣哦的。。
各種傳值格式又都得記,本來學了class MySQLi,後來知道都用pdo,又學了pdo,現在又一個M。。。我都快學串了。
我問問這個thinkPHP 的大M 方法,在你們做項目用的多嗎?
比pdo 的方便嗎?
我還學習嗎。。
回複內容:
學完了 thinkPHP C和V 最後看的 操作資料庫,
之前學的PHP內建的PDO,感覺也會用了,
現在thinkPHP 也自己帶了一套 操作資料庫的 類。
我看了看教程,再學習也挺繁瑣哦的。。
各種傳值格式又都得記,本來學了class MySQLi,後來知道都用pdo,又學了pdo,現在又一個M。。。我都快學串了。
我問問這個thinkPHP 的大M 方法,在你們做項目用的多嗎?
比pdo 的方便嗎?
我還學習嗎。。
請先 登入 後評論
預設排序 時間排序
5 個回答
答案對人有協助,有參考價值 0 答案沒協助,是錯誤的答案,答非所問
你看了文檔之後就會感覺用起來很方便啊,大哥,架構的意義在哪裡?!不就是讓你少寫代碼嗎!話說tp 3.2.3資料庫驅動用pdo重寫了(完全基於pdo的)
你既然要用Thinkphp架構了肯定首選使用M或者D方法啊!
thinkphp裡面有兩種模型調用方式,M()和D(),比如操作使用者表:
M('user')->add(array('name' => 'zhangsan'));D('**U**ser')->add(array('name' => 'lisi'));
注意D('User')中user首字母大寫。兩者的區別是,D()可以由你自己撰寫擴充的模型操作,而M()是thinkPHP內建的方法,也就是說D()可實現功能擴充,而M()功能不可擴充,效能上D()也就比M()弱了一些。
你學PHP當然要對pdo和mysqli方法都有所瞭解,但是在具體的項目中,用thinkPHP封裝好的方法去操作就好了。
我用D比較多
幾乎每個項目中都會使用到資料庫,而在ThinkPHP
此類架構中,一般是將一張表封裝成一個對象,而在php中,對象的執行個體化是需要new類的,代碼類似於
//類似於這種MysqlTableClass $obj_Table =new MysqlTableClass('db_name','table_name');obj_test=$obj_Table->getOne();
而ThinkPHP
的M
函數(這裡我不得不糾正下你的說法了,類中的才叫方法,這個M位於公用函數裡,所以只能叫函數),封裝的就是上面的new操作,返回的直接就是一個對象。
技巧拓展
建議不要使用M
方法,因為當你後期需要添加自訂模型的時候,M
方法還得一個個的改成D
,非常麻煩,而如果你直接使用D
方法,則可以避免此類問題。
綜上
直接使用D方法即可,本質上就是一個封裝而已~