2016-12-09 3 views
0

Fatal error: Call to a member function execute() on boolean in ---- on line 18Неустранимая ошибка: вызов функции-члена execute() на boolean в

Я продолжаю получать эту ошибку. Я хочу, чтобы это произошло, когда вы нажимаете кнопку «Удалить» в сообщении, и оно удаляет его. Это строка 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, boolean given] (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 Проблема в том, что он вызывает 'mysqi_query', когда он должен вызывать' mysqli_prepare'. – 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(); 
Смежные вопросы