PHP上でMySQLのテーブルのレコードを更新するためのソースコード

この記事は約4分で読めます。
ポートフォリオ制作実績

テーブル1:orders

カラム:id(int not null primary 4), name(varchar 20), older(int 4)

今回は上記のテーブルのレコードを例に更新しています。

スポンサーリンク

PHP上でMySQLのテーブルのレコードを更新するためのソースコード

test.php

<?php
$dsn = 'mysql:host=localhost;dbname=my_db;charset=utf8;';
$row = ['name' =>' ', 'password' => 0];

#1を用意
$id = 1;
if(isset($_GET['id'])){
	$id = $_GET['id'];
}
if($_SERVER["REQUEST_METHOD"]=='POST'){
	$name = $_POST['name'] ;
	$older = $_POST['older'] ;
	try{
		$pdo = new PDO($dsn, 'root', ' ');
		#SQL文(UPDATE)
		$sql = 'update orders set name = :name, older = :older, where id = :id';
		#prepareの実行
		$stmt = $pdo -> prepare($sql);
		#idの値をバインド
		$stmt  -> bindValue(':id', $id, PDO::PARAM_INT);
		$stmt  -> bindValue(':name', $name, PDO::PARAM_STR);
		$stmt  -> bindValue(':older', $older, PDO::PARAM_INT);
		#UPDATEした結果を実行
		$stmt -> execute(); 
		#リダイレクト
		header('Location: ./?id=' . $id);
		exit;
	}catch(PDOException $e){
		$message = $e -> getMessage();
	}else{
		if(id != false){
			try{
				$pdo = new PDO($dsn, 'root', ' ');
				$sql = 'select * from orders where id = ' . $id';
				$stmt = $pdo -> query($sql);
				$row = $stmt -> fetch();
				$message = 'orders id は' . $id;
			}catch(PDOException $e){
				$message = $e->getMessage();
			}
		}
	}
	try{
		$pdo = new PDO($dsn, 'root', ' ');
		$sql = 'select * from orders';
		$stmt = $pdo -> query($sql);
	}catch(PDOException $e){
		$message = $e -> getMessage();
	}

?>


	<form method="post" action=". /?id=<?=$id ?>">
		<table>
			<tr>
				<th>氏名</th>
				<td><input type="text" name="name" value="<?=$row['name'] ?>"></td>
			</tr>
			<tr>
				<th>年齢</th>
				<td><input type="number" name="older" value="<?=$row['older'] ?>"></td>
			</tr>
			<tr>
				<th>情報を送信する</th>
				<td><input type="submit"></td>
			</tr>
		</table>
	</form>
タイトルとURLをコピーしました