본문 바로가기
MySql

MySQL 쿼리 PHP MySQL 업데이트

by 베이스 공부 2020. 9. 16.
반응형

아무도이 업데이트 쿼리가 내 데이터베이스의 필드를 업데이트하지 않는 이유를 이해할 수 있습니까? 데이터베이스에서 현재 값을 검색하기 위해 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 함수를 사용하여 수신 데이터를 삭제해야합니다.

 

참조 페이지 https://stackoverflow.com/questions/8893551

 

 

반응형

댓글