2014-05-10 44 views
0

我確信這個錯誤正在盯着我,但我仍然會問這個問題,因爲我已經花了幾個小時已經試圖出來。我不知道爲什麼,但查詢導致HTML完全停止渲染。不只是在PHP標籤內,而是所有的HTML。下面是一個非常削減我的代碼版本,只是足以得到錯誤。應該顯示的是數字1,然後是var_dump,然後是2,var_dump等等,但我得到的是1,然後是錯誤。PHP對象和MySQL - 調用一個非對象的成員函數query()

<?php 
class Calendar { 
private $DBConnect = NULL; 

    function __construct() { 
     $ErrorMsgs = array(); 
     $DBConnect = new mysqli("localhost", "user", "pass", "db"); 
     if ($DBConnect->connect_error) 
      $ErrorMsgs[] = "The database server is not available. Connect Error is " . $mysqli->connect_errno . " " . $mysqli->connect_error . "."; 
     $this->DBconnect = $DBConnect; 
    } 

    public function getMonthlyCalendar($Year, $Month) { 
     for ($i = 1; $i <= 31; ++$i) { 
      echo $i; 
      $SQLstring = "SELECT EventID, Title FROM event_calendar WHERE EventDate='2014-05-$i'"; 
      $QueryResult = $this->DBConnect->query($SQLstring); 
      var_dump($QueryResult); 
     } 
    } 
} 

$Calendar = new Calendar(); 
$Calendar->getMonthlyCalendar(2014, 5); 
?> 
+1

變量名稱區分大小寫。打開'error_reporting(E_ALL)'找出。 – mario

+0

@mario好回答:) – Cully

回答

0

你有一個錯字:

你宣佈

$this->DBconnect = $DBConnect; 

但你使用

$QueryResult = $this->DBConnect->query($SQLstring); 

與數據庫連接大寫℃。

+0

哦。我的。神。我花了好幾個小時看着這段代碼,重做了幾十次,迴應這個,轉儲它。你在6分鐘內看到它。有趣的是,我只在這裏包含構造函數以獲得完整性。非常感謝! – mrtarantula

-1

錯誤消息通常是查詢中的錯誤。 如果您使用的phpmyadmin複製您的查詢,並在你的phpmyadmin查詢框中運行它,看看它是否返回results.if您的查詢工作,那麼你知道在你的連接腳本代碼中的錯誤

+0

錯誤來自$ this-> DBConnect不是一個對象。它與查詢無關。如果查詢是問題,他會得到一個不同的錯誤。 – Cully

+0

所以它的錯誤在連接腳本..... – user2976773

+0

這是一個錯字。但即使不是,你的答案也不準確。該錯誤不是由查詢問題產生的。 – Cully

相關問題