,我发现了错误:调用一个成员函数取()一个非对象
Call to a member function fetch() on a non-object
这是指该生产线是:
$getProjectIdResult = $stmt->fetch();
现在,我想从这个错误,说明我的数据库查询一定有问题,因为文档说PDO查询在失败时返回false。我无法识别是什么导致问题。
我已经试过包装在一个try/catch的获取,与
$this->db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
然而美中不足的是没有被触发,我只是让原有的致命错误,所以我一直没能得到更具体的错误。
classes.php
class Query extends Connection {
public function getProjectID($surveyID) {
$query_getProjectID = "SELECT projectID FROM test WHERE surveyID = :surveyID";
$query_getProjectID_params = array(
':surveyID' => $surveyID
);
try {
$stmt = $this->db->prepare($query_getProjectID);
$stmt = $stmt->execute($query_getProjectID_params);
}
catch (PDOException $ex) {
die("Failed to get project ID: " . $ex->getMessage());
}
$getProjectIdResult = $stmt->fetch();
$getProjectID = $getProjectIdResult['projectID'];
return $getProjectID;
}
}
test.php的
include_once("includes/classes.php");
include_once("includes/functions.php");
// Bind $_GET data
// localhost/panel/test.php?surveyID=3&status=1&respondentID=666
// Expected result: 111
$surveyID = sanitise($_GET['surveyID']);
$status = sanitise($_GET['status']);
$respondentID = sanitise($_GET['respondentID']);
$con = new Connection();
$query = new Query();
$query->getProjectID($surveyID);
$con->closeConnection();
我已经排除了的sanitize函数与没有它的测试引起的问题。
我很抱歉,因为我知道这可能只是另一个业余人士做出另一个业余的错误判断有多少职位有相同的标题。
的可能的复制[我的PDO声明不起作用(http://stackoverflow.com/questions/32648371/my-pdo-statement-doesnt-work) –
@MasivuyeCokile我会不同意,我已经意识到这个错误通常意味着什么 - 我只是在某个地方搞砸了,无法用我有限的知识来发现它 –