在學PHP的過程中,遇到一些問題,但不是全部都能夠順利得到解決,就在PDO抽象層,採用rowCount();方法出現數據能夠正常查詢出來的情況下返回結果爲0,在網上搜了一天,沒有一個具體的說明和解決方案,很多朋友在問,但卻沒有人回答,因此在這裏稍微說說具體的情況及最終的解決方案,不一定每個人都適用,但是希望能給和我遇到同樣問題和在學習中糾結的朋友們一點幫助。
情況描述:
條件:採用$_sql = "SELECT id FROM dda_ddq WHERE name='123' LIMIT 1";語句進行查詢,能正常打印出查詢的結果集。
症狀:利用rowCount();方法在本地能夠打印出1,但上傳到服務器後打印出0;
經過查詢網上資料得出問題原因:
本地測試環境:5.0.51a
Mysql 5.0.45, PHP 5.2.5 returned 1在線測試環境:5.1.48
Mysql 5.1.30, PHP 5.1.6 returned 0
看到這裏大部分的初級朋友應該明白了爲什麼本地代碼可以正常運行,在線代碼就出問題了吧。
解決方法其實非常簡單,通過查詢PHP5的幫助文檔後,採用columnCount();但發現無論有無數據都只返回1值;
最後採用了判斷語句的解決方法,勉強能用了,個人感覺應該還有更好的方法,只是我初學還不知道而已;
if($_st->fetchObject()){
return "1";
}else {
return "";
}
稍微優化了一下
return $_st->fetchObject() ? 1 : 0;
因此希望能和在PHP學習中的朋友們多多交流。