Обновить запрос PHP MySQL
Может кто-нибудь помочь мне понять, почему этот запрос обновления не обновляет поля в моей базе данных? У меня есть на моей странице 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' ) ;
?>
Я не понимаю, почему это не работает.
Ответы
Ответ 1
У вас должны быть одинарные кавычки вокруг любого содержимого VARCHAR в ваших запросах. Поэтому ваш запрос на обновление должен быть:
mysql_query("UPDATE blogEntry SET content = '$udcontent', title = '$udtitle' WHERE id = $id");
Кроме того, это плохая форма для обновления базы данных напрямую с помощью контента из POST. Вы должны дезинфицировать входящие данные с помощью функции mysql_real_escape_string.
Ответ 2
Не зная, какова фактическая ошибка, которую вы получаете, я бы догадался, что у нее отсутствуют кавычки. попробуйте следующее:
mysql_query("UPDATE blogEntry SET content = '$udcontent', title = '$udtitle' WHERE id = '$id'")
Ответ 3
Вам нужно добавить цитату для использования точечного оператора:
mysql_query("UPDATE blogEntry SET content = '".$udcontent."', title = '".$udtitle."' WHERE id = '".$id."'");
Ответ 4
Здесь я обновил две переменные и дату и время
$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
Ответ 5
Сначала вы должны определить, что "не работает".
Во-вторых, я предполагаю, что ваше поле "content" вашего поля является varchar/text, поэтому вам нужно заключить его в кавычки. content = '{$content}'
И последнее, но не менее важное: используйте echo mysql_error()
непосредственно после запроса для отладки.
Ответ 6
Я предполагаю, что это пропущенные кавычки. Попробуйте следующее: я надеюсь, что это будет работать правильно
$ sql = mysql_query ("UPDATE table_name SET id = '". $ u_id. "', name = '". $ u_name. "', now() WHERE id = '". $ u_id. "'"); // Разрыв строки
Ответ 7
вы должны написать одинарные кавычки, затем двойные кавычки, а затем до имени поля и после этого
mysql_query("UPDATE blogEntry SET content ='".$udcontent."', title = '".$udtitle."' WHERE id = '".$id."' ");
Ответ 8
Обновить строку или столбец таблицы
$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;
}
Ответ 9
<?php
require 'db_config.php';
$id = $_POST["id"];
$post = $_POST;
$sql = "UPDATE items SET title = '".$post['title']."'
,description = '".$post['description']."'
WHERE id = '".$id."'";
$result = $mysqli->query($sql);
$sql = "SELECT * FROM items WHERE id = '".$id."'";
$result = $mysqli->query($sql);
$data = $result->fetch_assoc();
echo json_encode($data);
?>
Ответ 10
Попробуйте, как это в SQL-запрос, он будет работать нормально.
$sql="UPDATE create_test set url= '$_POST[url]' WHERE test_name='$test_name';";
Если вам нужно обновить несколько столбцов, используйте как это,
$sql="UPDATE create_test set 'url'= '$_POST[url]','platform'='$_POST[platform]' WHERE test_name='$test_name';";