반응형
아무도이 업데이트 쿼리가 내 데이터베이스의 필드를 업데이트하지 않는 이유를 이해할 수 있습니까? 데이터베이스에서 현재 값을 검색하기 위해 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
반응형
'MySql' 카테고리의 다른 글
MySQL CSV 저장소 엔진을 사용하여 CSV 파일에서 직접 mysql 테이블을 만드시겠습니까? (0) | 2020.09.17 |
---|---|
MySQL에서 작은 따옴표를 이스케이프하는 방법 (0) | 2020.09.16 |
MySQL에서 AUTO_INCREMENT를 재설정하는 방법은 무엇입니까? (0) | 2020.09.16 |
MySQL PHP / MySQL 삽입 행 후 'id'가져 오기 (0) | 2020.09.16 |
MySQL 하나의 쿼리에서 MySQL 다중 조인? (0) | 2020.09.16 |
댓글