2015-07-12 2 views
2

В настоящее время я пытаюсь получить базу данных, обновленную через форму PHP. Во-первых, я получаю всю информацию из базы данных в форме и затем пытаюсь обновить данные в этой форме, чтобы отразить базу данных.База данных не обновляется - PHP-форма через MySQLi

Мне удалось успешно получить все данные из базы данных в форме, но, к сожалению, по этой причине не обновляется.

Вот код для извлечения информации из БД, в форме, которая работает на 100%:

include_once 'db_connect.php'; 

if($result->num_rows > 0) { 
    while($row = $result->fetch_assoc()) { 
     echo "<form id=updateVehicle action='' method=post"; 
      echo "<div id='vehicleDescription'>"; 

       echo "<div>"; 
        echo "<label for=vin>VIN</label>"; 
        echo "<input type=text id=vin name=vin minlength=17 maxlength=17 placeholder=e.g. BMW1234567890ABCD value=" . $row['vin'] . " />"; 
        echo "<br/>"; 
       echo "</div>"; 

       echo "<div>"; 
        echo "<label for=make>Make</label>"; 
        echo "<input type=text id=make name=make minlength=3 maxlength=13 placeholder=e.g. BMW value=" . $row['make'] . " />"; 
        echo "<br/>"; 
       echo "</div>"; 

       echo "<div>"; 
        echo "<label for=model>Model</label>"; 
        echo "<input type=text id=model name=model minlength=2 maxlength=15 placeholder=e.g. 530D value=" . $row['model'] . " />"; 
        echo "<br/>"; 
       echo "</div>"; 

       echo "<div>"; 
        echo "<input type=text name=id value=" . $row['id'] . " />"; 
       echo "</div>"; 

       echo "<span><?php echo $errorMessage;?></span>"; 
      echo "</div> <!--End of vehicleDescription div-->"; 
      echo "<input type='submit' class='submit' value='Update Ads' />"; 
     echo "</form>"; 
    } 
} 

Действие пустой, потому что он представляет себе, я пытался использовать «эхо htmlspecialchars ($ _SERVER [ "PHP_SELF"]);» но это не сработало, поэтому я оставил его.

Вот код для обработки обновления, который не работает:

if(isset($_POST['vin'], $_POST['make'], $_POST['model'])) { 
    $vin = filter_input(INPUT_POST, 'vin', FILTER_SANITIZE_STRING); 
    $make = filter_input(INPUT_POST, 'make', FILTER_SANITIZE_STRING); 
    $model = filter_input(INPUT_POST, 'model', FILTER_SANITIZE_STRING); 
    $id = filter_input(INPUT_POST, 'id', FILTER_SANITIZE_NUMBER_INT); 

    if($insert_stmt = $mysqli->prepare("UPDATE vehicles SET (vin=?, make=?, model=? WHERE id=? ")) { 
     $insert_stmt->bind_param("sssi", $vin, $make, $model, $id); 

     if(!$insert_stmt->execute()) { 
      header('Location: ../error.php?err=Registration failure: UPDATE'); 
      $mysqli->close(); 
     } 
    } 
    header('Location: ../includes/register_success.php'); 
    $mysqli->close(); 
} 

Для некоторых неизвестных причин мне не обновляет базу данных на всех. «Db_connect.php» работает на 100%, поскольку я использую его для других запросов к базе данных.

Я бы очень признателен за любую помощь, если вы могли бы указать мне в правильном направлении.

Спасибо!

+0

Вы получаете какую-либо ошибку. в вашем error_log? И что произойдет, если вы попытаетесь выполнить echo '$ vin $ make $ model $ id' после их дезинфекции? – Qirel

+0

Потерять круглые скобки? – Drew

+0

Привет, Qirel. Всякий раз, когда я пытаюсь активировать журнал ошибок, Неустранимая ошибка: класс «mysqli» не найден в ... ». Однако, если отчет об ошибках отключен, код выполняется так, как следует, кроме кода, который не работает как человек выше. Кроме того, когда я повторяю эти переменные, ничего не происходит. Предположительно, переменные не установлены? Спасибо – CodeX

ответ

1

Вы не ошиблись при выполнении запроса на обновление? Я могу видеть дополнительную ( после SET в:

UPDATE vehicles SET (vin=?, make=?, model=? WHERE id=? 

Это должно вызвать запрос на провал, который является хорошей причиной, почему вещи не обновляется в базе данных

+0

У него нет сообщений об ошибках, включенных или просмотренных журналом – Drew

+0

Привет, jedrzej.kurylo, я попытался удалить скобки, упомянутые выше, но все равно не повезло. Любое другое предложение? Спасибо – CodeX

+0

Привет, Дрю Пирс. Всякий раз, когда я настраиваю журнал ошибок PHP, я получаю «Неустранимая ошибка: класс« mysqli »не найден в ...». Если я закомментирую журнал ошибок из PHP.ini, код работает отлично, отлично от описанного выше. У вас есть идея, почему? Спасибо – CodeX

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