この更新クエリがデータベースのフィールドを更新していない理由を理解できる人はいますか?データベースから現在の値を取得するために、私の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関数を使用して受信データをサニタイズする必要があります。
あなたが取得している実際のエラーが何であるかを知ることなく、私はそれが引用符を欠いていると思います。以下を試してください:
mysql_query("UPDATE blogEntry SET content = '$udcontent', title = '$udtitle' WHERE id = '$id'")
$ 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
ドット演算子を使用する必要があるため、引用符を追加する必要があります。
mysql_query("UPDATE blogEntry SET content = '".$udcontent."', title = '".$udtitle."' WHERE id = '".$id."'");
まず、「機能しない」と定義する必要があります。
第二に、テーブルフィールド「content」はvarchar/textであると想定しているため、引用符で囲む必要があります。 _content = '{$content}'
_
そして最後になりますが、デバッグするクエリの直後にecho mysql_error()
を使用してください。
引用符がないと思います。次のことを試してください:適切に動作することを望みます
$ sql = mysql_query( "UPDATE table_name SET id = '"。$ u_id。 "'、name = '"。$ u_name。 "'、now()WHERE id = '"。$ u_id。 "'"); //改行
単一引用符、二重引用符、フィールド名の前、およびその後のドットを記述する必要があります
mysql_query("UPDATE blogEntry SET content ='".$udcontent."', title = '".$udtitle."' WHERE id = '".$id."' ");
テーブルの行または列を更新する
$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;
}
<?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);
?>
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';";