更新查询PHP MySQL

20 php mysql database blogs phpmyadmin

任何人都可以帮助我理解为什么这个更新查询没有更新我的数据库中的字段?我在我的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'];


    ?>
Run Code Online (Sandbox Code Playgroud)

这是我的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>
Run Code Online (Sandbox Code Playgroud)

这是我的'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' ) ;





?>
Run Code Online (Sandbox Code Playgroud)

我不明白为什么它不起作用.

dav*_*ell 24

您必须在查询中的任何VARCHAR内容周围使用单引号.所以你的更新查询应该是:

mysql_query("UPDATE blogEntry SET content = '$udcontent', title = '$udtitle' WHERE id = $id");
Run Code Online (Sandbox Code Playgroud)

另外,使用POST中的内容直接更新数据库是不好的形式.您应该使用mysql_real_escape_string函数清理传入的数据.


MrK*_*ane 6

不知道你得到的实际错误是什么,我猜它是缺少引号.尝试以下方法:

mysql_query("UPDATE blogEntry SET content = '$udcontent', title = '$udtitle' WHERE id = '$id'")
Run Code Online (Sandbox Code Playgroud)


小智 6

需要为需要使用点运算符添加引号:

mysql_query("UPDATE blogEntry SET content = '".$udcontent."', title = '".$udtitle."' WHERE id = '".$id."'");
Run Code Online (Sandbox Code Playgroud)