php
  • mysql
  • database
  • 2014-08-27 2 views -2 likes 
    -2
    $q = "UPDATE pages SET body ='{$body}' WHERE id ={$_POST["id"]} "; 
    
    $r = mysqli_query($dbc, $q); 
    if($r){ 
        $message ='<p>Page was updated!</p>'; 
    } 
    else { 
        $message = '<p>Page could not be updated because: '.mysqli_error($dbc); 
        $message .= '<p>'.$q.'</p>'; 
    } 
    

    , сделав это на странице «Страница не может быть обновлена, потому что: у вас есть ошибка в синтаксисе SQL, проверьте руководство, соответствующее версии вашего сервера MySQL, для правильного использования синтаксиса около «» в строке 1запрос на обновление не выполнен

    "UPDATE pages SET body ='' WHERE id =" 
    
    +1

    ID = {$ _ POST [ "ID"]} заменить ИД = {$ _ POST [ 'ID']} –

    +2

    , кстати, использовать подготовленные заявления, вместо этого, почему бы не использовать его , вы используете 'mysqli_ *' anyway – Ghost

    +0

    Замените '{$ _POST [" id "]}' by '{$ _POST ['id']}' – webNeat

    ответ

    -1

    Обязательно отправьте форму и используя метод POST.

    Похоже, что ваш запрос POST не отправляет переменную id. Используйте инспектор элементов внутри вашего браузера, чтобы узнать, что вы отправляете.

    Хороший способ проверить, что вы (не) отправка в print_r($_POST);

    Кроме того, вы используете $body в запросе, но не показывает нам часть кода, которая заполняет $body.

    редактировать

    Попробуйте сделать это, добавив непосредственно после открытия вашего <form> тег:

    <input type="hidden" name="id" value="<?php echo $opened['id'];?>"> 
    

    И не забудьте положить обратно WHERE id ={$_POST["id"]} в запросе. Потому что я вижу, что вы удалили эту часть в вставленном коде.

    +0

    здесь $ body = mysqli_real_escape_string ($ dbc, $ _ POST ['body']); –

    +0

    после выполнения print_r ($ _ POST); в результате получится: Array ([title] => [user] => 0 [slug] => [label] => [header] => [body] => [update] =>) и я использую method = "post" в форме. –

    +0

    @SaurabhSingh Там вы идете. Вы не отправляете 'id' в свой запрос POST. Вы отправляете только название, пользователь, slug, ярлык, заголовок, тело и обновление. И они кажутся пустыми или нулевыми. Измените свой вопрос и покажите нам свою форму. –

    2
    UPDATE pages SET body ='' WHERE id = 
    

    Это показывает, что ваши данные не делает его к вашему запросу. Там нет никакого способа для нас знать, почему так что вам нужно сделать такие вещи, как убедитесь, что форма данные передаются, значения не пустые, ваши переменные определены и т. д.

    +0

    Это не котировка. Хотя SO highligher показывает это по-другому. Вы можете использовать кавычки '' 'для переменных ключей внутри фигурных скобок' {} 'переменные внутри цитированных строк' ''. Пример: http://codepad.org/gYrTBD72 –

    +0

    Привет @john! после изменения котировок i stll, получающих ту же проблему :( «Страница не может быть обновлена, потому что: у вас есть ошибка в синтаксисе SQL, проверьте руководство, соответствующее версии вашего сервера MySQL, для правильного синтаксиса для использования рядом с ' в строке 1 UPDATE страницы SET body = '' WHERE id = " –

    +0

    Опубликуйте результаты выполнения' echo $ q' здесь. –

    -1

    Изменение {$_POST["id"]} в {$_POST['id']}

    +0

    hello richard после этого я получаю ту же проблему. –

    +0

    Это не котировочная проблема. Хотя SO highligher показывает это по-другому. Вы можете использовать кавычки '' 'для переменных ключей внутри фигурных скобок' {} 'переменные внутри цитированных строк' ''. Пример: http://codepad.org/gYrTBD72 –

    0

    Написать свой код, как это. Всегда отделяйте переменные для удобства чтения.

    $id = $_POST['id']; 
    $q = "UPDATE pages SET body ='{$body}' WHERE id ={$id} "; 
    
    +0

    hello raheel shan после этого, по-вашему, я получаю ту же проблему –

    +0

    Это скорее комментарий, чем ответ. –

    +0

    Каков тип вашего идентификационного поля? это varchar или integer? –

    -1

    По ошибке кажется, что $ _POST ["id"] пуст. Попробуйте использовать это:

    $q = "UPDATE pages SET body ='" . mysqli_real_escape_string($body) . "' " . 
        "WHERE id ='".mysqli_real_escape_string($_POST["id"])."'"; 
    
    +0

    цитируя это все равно проблема, если поле не varchar –

    +0

    будет автоматически typecasted к строке и, по крайней мере, не будет запускать ошибку, если соответствующий идентификатор не найден (допустим, пуст) – Zeusarm

    +0

    это фактически приведет к исчезновению ошибки. Но реальность будет заключаться в том, что запрос все еще НЕ НИЧЕГО, так как нет id '' '. OP должен будет выяснить, почему' $ _POST ["id"] 'содержит' ''. –

    Смежные вопросы