2016-12-09 78 views
0

Fatal error: Call to a member function execute() on boolean in ---- on line 18致命錯誤:調用成員函數execute()布爾型

我不斷收到此錯誤。我想要發生的是當你點擊一個帖子上的刪除按鈕時,它會刪除它。 這是行18

$result->execute(array(':id' => $_GET['delpost'])); 

PHP

if (isset($_GET['delpost'])) { 

    $result = mysqli_query($connection,'DELETE FROM blog WHERE id = :id') ; 
    $result->execute(array(':id' => $_GET['delpost'])); 

    header('Location: blog.php?action=deleted'); 
    exit; 
} 
+0

的可能的複製[mysqli的\ _fetch \ _array()/mysqli \ _fetch \ _assoc()/ mysqli \ _fetch \ _row()期望參數1是資源或mysqli \ _result,布爾值給定](http://stackoverflow.com/questions/2973202/mysqli-fetch-array-mysqli -fetch-assoc-mysqli-fetch-row-expects-parameter-1)錯誤信息略有不同,但出於同樣的原因和相同的基本原因。 'mysqli_query()'失敗並返回一個「false」值。檢查'mysql_error()'。 – David

+2

你使用'mysqli'還是'PDO'?以':'開頭的佔位符僅用於PDO。 – Barmar

+0

@David問題是,當他應該調用mysqli_prepare時,他正在調用'mysqi_query'。 – Barmar

回答

3

您需要使用prepare()創建一份準備好的聲明,沒有query。你也在混合PDO和mysqli,這是行不通的。

如果您使用PDO,它應該是:

$result = $connection->prepare('DELETE FROM blog WHERE id = :id'); 
$result->execute(array(':id' => $_GET['delpost'])); 

如果您使用mysqli的,它應該是:

$result = $connection->prepare('DELETE FROM blog WHERE id = ?'); 
$result->bind_param('i', $_GET['delpost']); 
$result->execute(); 
相關問題