我在下面列出的類的get_template()函數中收到上述錯誤。有誰知道我爲什麼會收到這個錯誤?所有其他查詢執行得很好,$ template_number肯定會返回一個int,這是在查詢中的這一點,所以我爲什麼會收到這個錯誤? ?難道是因爲此查詢返回在MySQL爲文本格式(和出現在phpMyAdmin一個BLOB調用成員函數的bind_param()函數調用另一個函數調用的非對象內部函數
class Page{
private $con;
public function __construct(Connection $con) {
$this->con = $con;
if(isset($_GET['id'])){
$id = $_GET['id'];
}else{
$id = 1;
}
$this->get_headers($id);
$this->get_content($id);
$this->get_footer($id);
}
private function get_headers($pageId){
$retrieveHead = $this->con->prepare("SELECT headers FROM pages WHERE page_id=?");
$retrieveHead->bind_param('i',$pageId);
$retrieveHead->execute();
$retrieveHead->bind_result($header);
$retrieveHead->fetch();
$retrieveHead->close();
echo $header;
}
private function get_footer($pageId){
$retrieveFooter = $this->con->prepare("SELECT footer FROM pages WHERE page_id=?");
$retrieveFooter->bind_param('i',$pageId);
$retrieveFooter->execute();
$retrieveFooter->bind_result($footer);
$retrieveFooter->fetch();
$retrieveFooter->close();
echo $footer;
}
private function get_content($pageId){
$retreiveContent = $this->con->prepare("SELECT template_id, section_title, i1, i2 FROM content WHERE page_id=? ORDER BY sequence DESC");
$retreiveContent->bind_param('i',$pageId);
$retreiveContent->execute();
$retreiveContent->bind_result($template_id, $section_title, $i1, $i2);
while ($retreiveContent->fetch()) {
//Variables will be populated for this row.
//Update the tags in the template.
$template = $this->get_template($template_id);
$template = str_replace('[i1]',$i1,$template);
$template = str_replace('[i2]',$i2,$template);
//$theTemplate is populated with content. Probably want to echo here
echo $template;
}
$retreiveContent->close();
}
private function get_template($template_number){
$retreiveFunction = $this->con->prepare("SELECT code FROM templates WHERE template_id=?");
$retreiveFunction->bind_param('i',$template_number);
$retreiveFunction->execute();
$retreiveFunction->bind_result($template);
$retreiveFunction->fetch();
$retreiveFunction->close();
return $template;
}
}
表結構可以發現如下:
大部分的時間你可以假設'調用一個成員函數bind_param()在非object'是因爲你在'false'上調用' - > bind_param',因爲準備失敗。我假設這是因爲'$ this-> con'。你應該實現mysqli,而不是通過類。 – Amelia
它適用於其他功能中的所有其他查詢,所以這不是問題。 – jezzipin
錯誤包括一個行號,很遺憾您沒有提供。無論您調用的是「bind_param」,轉到該行和「var_dump」。其餘的將自行調試。 – Jon