フォームを使用してデータベースを更新しようとすると、問題が発生します。MYSQLとPHPデータベースの更新データベースが更新されない
私の問題は、何も起こらないアップデートをクリックしたときです。データベースは更新されません。
別の問題は、フォームとSQLクエリでPOSTを使用する場合です。編集ページに情報が表示されず、空白です。
これは読みにくいなど申し訳ありませんが、初めての投稿です。また、私はGET/POSTクエリにセキュリティ上の欠陥があることを知っています。準備されたステートメントを使用し始める前に、あるいは呼び出されたものを使用し始めるだけです。
FYI、クエリをエコーしてif/elseステートメントを定義すると、動作しないことがわかりますが、理由はわかりません。私はこれに3日を費やし、インターネット上で見つかった例を使ってコードを何度も変更しています。
のindex.php
<?php
$servername = "localhost";
$username = "***";
$password = "****";
$dbname = "****";
$link = new mysqli("$servername", "$username", "$password", "$dbname");
if ($link->connect_error) {
die("Connection failed: " . $link->connect_error);
}
echo "Connected successfully";
mysqli_select_db($link,"jamesrph_myphp");
$sql = "SELECT * FROM article";
$result = mysqli_query($link,$sql);
$id = 'id';
$title = 'title';
?>
<html>
<head>
<link rel="stylesheet" type="text/css" href="style.css"/>
<title>PHP </title>
</head>
<body>
<h1> My title </h1>
<table>
<tr>
<?php
while($row=mysqli_fetch_array($result)){
?>
<td><?php echo $row["title"]; ?> </td>
<td><a href="article_detail.php?id=<?php echo $row["id"]; ?>">Read More</a></td>
<td><a href="edit.php?id=<?php echo $row["id"]; ?>">Edit</a></td>
</tr>
<?php
}
?>
</table>
</body>
</html>
个人设定
<?php
$link = mysqli_connect("localhost","******","******", "*****");
$query = "SELECT * FROM article WHERE id=".mysqli_real_escape_string($link, $_GET['id'])." LIMIT 1";
$result = mysqli_query($link,$query);
$row = mysqli_fetch_array($result);
$title = $row['title'];
$content = $row['content'];
?>
<html>
<head>
<link rel="stylesheet" type="text/css" href="style.css"/>
</head>
<body>
<p> Edit Article </p>
<form method="get" action="processarticle.php">
<input type="hidden" name="id" value="<?php echo $row["id"]; ?>" />
<input id="titlearea" type="text" name="title" value="<?php echo $row["title"]; ?>"/>
<textarea id="contentarea" name="content" rows="10" cols="40"><?php echo $row["content"];?></textarea>
<input type="submit" name="submit" id="update_article"/>
</form>
</body>
</html>
processarticle.php
<<?php
//Database Connection
include 'connection.php';
//Get ID from Database
if(isset($_GET['edit_id'])){
$sql = "SELECT * FROM article WHERE id =" .$_GET['edit_id'];
$result = mysqli_query($link, $sql);
$row = mysqli_fetch_array($result);
}
//Update Information
if(isset($_POST['btn-update'])){
$title = $_POST['title'];
$content = $_POST['content'];
$id = $_POST['id'];
$update = "UPDATE article SET title=?, content=? WHERE id=?";
$up = mysqli_query($link, $update);
if($stmt = $mysqli->prepare($update)){
$stmt->bind_param("ssi" ,$title ,$content ,$id);
$stmt->excute();
}
header("location: disp.php");
}
?>
を冷却http://www.w3schools.com/bootstrap/default.aspを試してみてください(と文字列を連結する。)連結を使用してみてくださいUPDATEクエリで$タイトルと$コンテンツaswellについて。 –
申し訳ありませんが私のリンクに意味ですか? –
セキュリティ上の欠陥を修正し、**修正**することに何の価値もありません。いずれにせよ、準備されたステートメントを使用して修正する必要があります。安全でないコードを作成する方法を学び、それを後で保護する方法を学ぶのではなく、時間を節約し、最初に安全な方法を学ぶのはなぜですか? –