PHPからデータベースの更新をするところでつまづいています。
PHP初心者です。
detail.phpで各idに紐付いているデータベースを表示し、dataupdate.phpでそれらの値を更新する。
という作業をやりたいのですが、うまくいきません。
detail.phpは下記(一応、うまく動きました)
<?php
//DBへ接続
$pdo = new PDO('mysql:dbname=otoiawase;host=localhost','root','');
//文字コードを指定
$stmt = $pdo->query('SET NAMES utf8');
//データ登録SQL作成
$stmt = $pdo->prepare("SELECT * FROM address_table WHERE id=:id");
$stmt->bindParam(':id', $_GET['id']);
//SQL実行
$flag = $stmt->execute();
//エラー処理
if($flag == false){
echo "SQLエラー";
}else{
$result = $stmt->fetch();
$name = array_column($result,'name');
// //$resultからemailの配列を取り出す
$email = array_column($result,'email');
}
?>
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<title>Document</title>
</style>
</head>
<body>
<form action="dataupdate.php" method="post">
<input type="text" name="id" value="<?php echo $result['id']; ?>">
<input type="text" name="name" value="<?php echo $result['name']; ?>">
<input type="text" name="email" value="<?php echo $result['email']; ?>">
<input type="submit" value="更新する">
</form>
</body>
</html>
ここからdataupdate.phpで更新をしたいのですが、うまくいきません。。。
dataupdate.phpは下記になります。何が原因なのか調べてみてもよくわからなかったのでご指摘いただけると幸いです。
<?php
$id = $_POST['id'];
$name = $_POST['name'];
$email = $_POST['email'];
//DBへ接続
$pdo = new PDO('mysql:dbname=otoiawase;host=localhost','root','');
//文字コードを指定
$stmt = $pdo->query('SET NAMES utf8');
//データ登録SQL作成
$update = $pdo->prepare("UPDATE address_table SET name=:name,email=:email WHERE id=:id");
$update->bindValue(':name','$name');
$update->bindValue(':email','$email');
$update->bindValue(':id','$id');
//SQL実行
$flag = $update->execute();
?>
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>
データ更新しました。
</body>
</html>