Обновить запрос PHP MySQL - PullRequest
18 голосов
/ 17 января 2012

Может кто-нибудь помочь мне понять, почему этот запрос на обновление не обновляет поля в моей базе данных? У меня есть это на моей странице 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' ) ;





?>

Я не понимаю, почему это не работает.

Ответы [ 10 ]

20 голосов
/ 17 января 2012

Вы должны иметь одинарные кавычки вокруг любого содержимого VARCHAR в ваших запросах.Таким образом, ваш запрос на обновление должен быть:

mysql_query("UPDATE blogEntry SET content = '$udcontent', title = '$udtitle' WHERE id = $id");

Кроме того, некорректно обновлять базу данных напрямую с помощью содержимого POST.Вы должны очистить ваши входящие данные с помощью функции mysql_real_escape_string.

6 голосов
/ 17 января 2012

Не зная, какая реальная ошибка вы получаете, я бы предположил, что в ней отсутствуют кавычки. попробуйте следующее:

mysql_query("UPDATE blogEntry SET content = '$udcontent', title = '$udtitle' WHERE id = '$id'")
4 голосов
/ 15 февраля 2014

Здесь я обновил две переменные и представил дату и время

$ 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
4 голосов
/ 09 октября 2012

Нужно добавить цитату, для этого нужно использовать оператор точки:

mysql_query("UPDATE blogEntry SET content = '".$udcontent."', title = '".$udtitle."' WHERE id = '".$id."'");
2 голосов
/ 17 января 2012

Во-первых, вы должны определить "не работает".
Во-вторых, я предполагаю, что ваше поле таблицы 'content' - это varchar / text, поэтому вам нужно заключить его в кавычки. content = '{$content}'
И последнее, но не менее важное: используйте echo mysql_error() непосредственно после запроса для отладки.

1 голос
/ 01 сентября 2018

Я бы предположил, что это пропущенные кавычки.Попробуйте сделать следующее: я надеюсь, что это будет работать правильноГДЕ id = '". $ U_id."' ");// LINEBREAK

0 голосов
/ 22 февраля 2018

Попробуйте в 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';";
0 голосов
/ 18 января 2018
<?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);
?>
0 голосов
/ 02 апреля 2017

Обновить строку или столбец таблицы

$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;
}
0 голосов
/ 07 января 2014

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

mysql_query("UPDATE blogEntry SET content ='".$udcontent."', title = '".$udtitle."' WHERE id = '".$id."' ");
...