2014-06-28 27 views
0

我不知道這個過程是否正確,但它對我來說大部分時間(直到現在)都有效。mysqli_query + foreach在本地和服務器上的工作方式不同

當我想要得到的SQL表的信息,我用下面的代碼:

if (!$db = mysqli_connect(HOST,USER,PASS,NAME)) return false; 

$results = mysqli_query($db,"SELECT * FROM `table`"); 

foreach ($results as $result) { 
    var_dump($result); 
} 

的事情是,我在本地主機測試這和它完美的作品,我有結果我的預期(以var_dump預期格式)。但是,對同一數據庫(但在服務器中)的相同代碼和相同查詢會返回一定數量的NULL(顯式爲「NULL NULL NULL NULL NULL」)。

本地主機:mysqli的 - 客戶端API庫版本:5.0.10 - 20111026 - $編號:e707c415db32080b3752b232487a435ee0372157 $(來自的phpinfo)

服務器:mysqli的 - 客戶端API庫版本:35年5月5日

問題:有誰知道這是否與我的問題有關?

我會感謝任何幫助。問候!

+0

數據庫表和列ID完全一樣嗎? – ElendilTheTall

+0

你必須驗證php和mysql庫版本是相同的,無論是在本地還是遠程。 – Hidran

+0

嘗試使用'print_r($ result)'。它會給你所有的現場數據。 – Kavin

回答

0

試試這兩個:

while($row = $results->fetch_array(MYSQLI_ASSOC)){ 
    print_r($row); 

}

,讓我們知道,如果仍然有一定的差異。

+0

它對兩個都有效!如果我使用print_r函數,兩者之間沒有區別。如果我使用var_dump函數,它在本地和服務器中看起來「很好」,但根本不重要。謝謝!! – jorgefpastor

+0

注意:我將PHP Version從'5.3.10-1ubuntu3.11'更新爲'5.4.30-1 + deb.sury.org〜precise + 1',現在它也適用於foreach方法。 :) – jorgefpastor

相關問題