PHP对象和MySQL - 在非对象上调用成员函数query()

时间:2014-05-10 23:17:15

标签: php mysqli

我确信这个错误正在盯着我,但我仍然会问它,因为我已经花了几个小时试图解决它。我不知道为什么,但查询导致HTML完全停止渲染。不只是在PHP标签内,而是所有HTML。下面是我的代码的非常修剪版本,足以得到错误。应该显示的是数字1后跟一个var_dump,然后是2,var_dump等...但是我得到的只有1,然后是错误。

<?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);
?>

2 个答案:

答案 0 :(得分:0)

您的代码中有拼写错误:

你宣布了

$this->DBconnect = $DBConnect;  

然后你用了

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

使用DBConnect大写的C语言。

答案 1 :(得分:-1)

该错误消息通常是查询中的错误。 如果您使用phpmyadmin复制您的查询,并在您的phpmyadmin查询框中运行它,看看它是否返回结果。如果您的查询有效,那么您知道连接脚本中的错误