2014-05-10 45 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

相关问题