Может кто-нибудь помочь мне понять, почему этот запрос обновления не обновляет поля в моей базе данных? У меня есть на моей странице php для извлечения текущих значений из базы данных:
<?php $query = mysql_query ("SELECT * FROM blogEntry WHERE username = 'bobjones' ORDER BY id DESC"); while ($row = mysql_fetch_array ($query)) { $id = $row['id']; $username = $row['username']; $title = $row['title']; $date = $row['date']; $category = $row['category']; $content = $row['content']; ?>
Вот моя форма HTML:
<form method="post" action="editblogscript.php"> ID: <input type="text" name="id" value="<?php echo $id; ?>" /><br /> Username: <input type="text" name="username" value="<?php echo $_SESSION['username']; ?>" /><br /> Title: <input type="text" name="udtitle" value="<?php echo $title; ?>"/><br /> Date: <input type="text" name="date" value="<?php echo $date; ?>"/><br /> Message: <textarea name = "udcontent" cols="45" rows="5"><?php echo $content; ?></textarea><br /> <input type= "submit" name = "edit" value="Edit!"> </form>
и вот мой «editblogscript»:
<?php mysql_connect ("localhost", "root", ""); mysql_select_db("blogass"); if (isset($_POST['edit'])) { $id = $_POST['id']; $udtitle = $_POST['udtitle']; $udcontent = $_POST['udcontent']; mysql_query("UPDATE blogEntry SET content = $udcontent, title = $udtitle WHERE id = $id"); } header( 'Location: index.php' ) ; ?>
Я не понимаю, почему это не работает.
Вы должны иметь одинарные кавычки вокруг любого содержимого VARCHAR в ваших запросах. Поэтому ваш запрос на обновление должен быть:
mysql_query("UPDATE blogEntry SET content = '$udcontent', title = '$udtitle' WHERE id = $id");
Кроме того, это плохая форма для обновления базы данных напрямую с помощью контента из POST. Вы должны дезинфицировать входящие данные с помощью функции mysql_real_escape_string.
Не зная, какова фактическая ошибка, которую вы получаете, я бы догадался, что у нее отсутствуют котировки. попробуйте следующее:
mysql_query("UPDATE blogEntry SET content = '$udcontent', title = '$udtitle' WHERE id = '$id'")
$ id = "1";
$ title = "phpmyadmin";
$sql= mysql_query("UPDATE table_name SET id ='".$id."', title = '".$title."',now() WHERE id = '".$id."' ");
now () обновляет текущую дату и время.
note: For update query we have define the particular id otherwise it update whole table defaulty
Нужно добавить цитату для использования точечного оператора:
mysql_query("UPDATE blogEntry SET content = '".$udcontent."', title = '".$udtitle."' WHERE id = '".$id."'");
Во-первых, вы должны определить, что «не работает».
Во-вторых, я предполагаю, что ваше поле «content» вашего поля является varchar / text, поэтому вам нужно заключить его в кавычки. content = '{$content}'
И последнее, но не менее важное: использовать echo mysql_error()
непосредственно после запроса для отладки.
вы должны написать одинарные кавычки, затем двойные кавычки, затем точку перед именем поля и после этого
mysql_query("UPDATE blogEntry SET content ='".$udcontent."', title = '".$udtitle."' WHERE id = '".$id."' ");
Обновить строку или столбец таблицы
$update = "UPDATE daily_patients SET queue_status = 'pending' WHERE doctor_id = $room_no and serial_number= $serial_num"; if ($con->query($update) === TRUE) { echo "Record updated successfully"; } else { echo "Error updating record: " . $con->error; }