Обновление php не обновляет базу данных

это код для моей html-формы:

<!DOCTYPE html> <head> <title> Question </title> <style type = "text/css"> body { font-family:cursive; } a:link { text-decoration:none; background-color:#D0D0D0; color:#000000; width:100px; display:block; text-align:center; padding:4px; } a.visited { text-decoration:none; background-color:#D0D0D0; color:#000000; width:100px; display:block; text-align:center; padding:4px; } a.active { text-decoration:none; background-color:#D0D0D0; color:#000000; width:100px; display:block; text-align:center; padding:4px; } a:hover { background-color:#686868; color:#FFFFFF; } #title { text-align:center; } </style> </head> <body> <?php session_start(); ?> <h1 id="title"> Question 1 </h1> <br/> <form action="q15.php" method="POST" > <fieldset> <legend>Who wrote the music we all recognise from the Paralympics?</legend> <p> <input type="checkbox" value="your friend" name="answer" />Your Friend </p> <p> <input type="checkbox" value="public friend" name="answer" />Public Friend </p> <p> <input type="checkbox" value="your enemy" name="answer" />Your Enemy </p> <p> <input type="checkbox" value="public enemy" name="answer" />Public Enemy </p> <p> <input type="submit" value="Submit" /> </p> </fieldset> </form> </body> </html> 

и это код моей страницы, который будет обрабатывать данные и обновлять базу данных, в которой пустые пробелы остаются пустыми для заполнения позже (как сейчас)

 <body> <h1 id="title"> Quiz </h1> <?php session_start(); $connection = mysql_connect("mysql15.000webhost.com", "a4987634_quiz", "********") or die (mysql_error()); mysql_select_db("a4987634_quiz", $connection) or die (mysql_error()); $fname = $_SESSION['fname']; $lname = $_SESSION['lname']; $id = $_SESSION['ID']; $answer = $_POST['answer']; $id = mysql_query("SELECT ID FROM users WHERE fname=$fname LIMIT 1"); if(isset($_POST['answer']) && $_POST['answer'] == 'public enemy') { ?> <h3 id = "correct"> Correct </h3> <?php $sqlcorrect = "UPDATE users SET q1 = correct WHERE ID = $ID LIMIT 1"; mysql_query($sqlcorrect); (mysql_error()); } else { ?> <h3 id = "incorrect"> Incorrect </h3> <?php $sqlwrong = "UPDATE users SET q1 = 'wrong' WHERE ID = $ID LIMIT 1"; mysql_query($sqlwrong); (mysql_error()); } ?> </body> </html> 

Я могу прекрасно подключиться к базе данных, и он знает, когда вы зададите вопрос правильно или неправильно, но моя проблема заключается в том, что при попытке обновить базу данных это не сделает. У кого-нибудь есть какие-то решения? Сообщение об ошибке также отсутствует. это не имеет смысла!

Solutions Collecting From Web of "Обновление php не обновляет базу данных"

В вашем запросе есть несколько вопросов:

  • Имена переменных в PHP чувствительны к регистру
  • Запрос на обновление может иметь LIMIT, но поскольку данный идентификатор задан, здесь нет смысла.
  • При обновлении строк они должны быть искажены.

Это должно работать, когда предоставляется правильный id :

 $sqlwrong = "UPDATE `users` SET `q1` = 'some text' WHERE `ID` = $id"; 
 $sqlcorrect = "UPDATE users SET q1 = 'correct' WHERE ID = $id"; 

если правильным является другое имя столбца, вам нужно окружить строки одинарными кавычками. И, как говорится в комментарии, $ ID может быть $ id в зависимости от ваших намерений. Должно быть определено в любом случае, хотя