前提・実現したいこと
db(mysql)に書き込まれているデータをphpのpostで上書きする。
submitを押すと、moneyの欄のみ更新される。
また、user_idはauto_incrementで自動配布になっているため、user_idから該当の欄を呼び出し、更新することが好ましい。
ログイン画面を実装しているため、user_idを逐一指定する必要はない。
("user_id"="2" のように…。)
下記ソースであれば、上書きではなく、新規作成になってしまう。
発生している問題・エラーメッセージ
Notice: Undefined index: id in C:\xampp\htdocs\cfabond\create.php on line 24 Notice: Undefined variable: dbh in C:\xampp\htdocs\cfabond\create.php on line 49 Fatal error: Uncaught Error: Call to a member function prepare() on null in C:\xampp\htdocs\cfabond\create.php:49 Stack trace: #0 {main} thrown in C:\xampp\htdocs\cfabond\create.php on line 49
該当のソースコード
<?php session_start(); include_once 'dbconnect.php'; if(!isset($_SESSION['user'])) { header("Location: index.php"); } // ユーザーIDからユーザー名を取り出す $query = "SELECT * FROM users WHERE user_id=".$_SESSION['user'].""; $result = $mysqli->query($query); $result = $mysqli->query($query); if (!$result) { print('クエリーが失敗しました。' . $mysqli->error); $mysqli->close(); exit(); } // ユーザー情報の取り出し while ($row = $result->fetch_assoc()) { $username = $row['username']; $email = $row['email']; $money = $row['money']; } // データベースの切断 $result->close(); ?> <!DOCTYPE HTML> <html lang="ja"> <head> <meta charset="utf-8" /> <meta name="viewport" content="width=device-width, initial-scale=1"> <title>chenge db</title> <link rel="stylesheet" href="style.css"> <!-- Bootstrap読み込み(スタイリングのため) --> <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.0/css/bootstrap.min.css"> </head> <body> <div class="col-xs-6 col-xs-offset-3"> <?php // signupがPOSTされたときに下記を実行 if(isset($_POST['signup'])) { $username = $mysqli->real_escape_string($_POST['username']); $email = $mysqli->real_escape_string($_POST['email']); $password = $mysqli->real_escape_string($_POST['password']); $password = password_hash($password, PASSWORD_BCRYPT); $money = $mysqli->real_escape_string($_POST['money']); // POSTされた情報をDBに格納する $query = "INSERT INTO users(money) VALUES('$money')"; if($mysqli->query($query)) { ?> <div class="alert alert-success" role="alert">登録しました</div> <?php } else { ?> <div class="alert alert-danger" role="alert">エラーが発生しました。</div> <?php } } ?> <center> <form method="post"> <div class="form-group"> <input type="text" class="form-control" name="money"placeholder="used" required /> </div> <button type="submit" class="btn btn-default" name="signup">submit</button> </form> </center>
試したこと
$sql = "UPDATE **** SET *** = ?? WHERE ** = ?";
の構文を使用しようと試みましたが、idの取得などで分からないことが多く、断念しました。
ここにより詳細な情報を記載してください。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。