【发布时间】:2009-06-05 20:43:54
【问题描述】:
错误:
致命错误:调用成员函数 bind_param() 在一个非对象上 /var/www/web55/web/pdftest/events.php 在第 76 行
代码:
public function countDaysWithoutEvents(){
$sql = "SELECT 7 - COUNT(*) AS NumDaysWithoutEvents
FROM
(SELECT d.date
FROM cali_events e
LEFT JOIN cali_dates d
ON e.event_id = d.event_id
WHERE YEARWEEK(d.date) = YEARWEEK(CURRENT_DATE())
AND c.category_id = ?
GROUP BY DAY(d.date)
) AS UniqueDates";
$stmt = $this->link->prepare($sql);
$stmt->bind_param('i', $this->locationID);
$stmt->execute();
$stmt->bind_result($count);
$stmt->close();
return $count;
}
$this->link->prepare($sql) 为 MySQLi 创建一个准备好的语句。
为什么会出现这个错误?
【问题讨论】:
-
尝试在 bind_param() 之前执行 var_dump($stmt)
-
另外,bind_param() 的第一个参数应该是 1。
-
@Flavius:不,它应该将类型作为第一个参数,如此处所述:us2.php.net/manual/en/mysqli-stmt.bind-param.php
-
@pal4life,除了标题和技术用途之外,它们并不相似。
标签: php mysqli prepared-statement