データベースの内容をアップデートするには - PHPプロ!Q&A掲示板

4894

  • 募集中!! 0P

データベースの内容をアップデートするには

質問日時 / 2017年12月4日 16:27 (最終編集:12月7日 13:05)    回答数 / 1件

Questioner:  kumataro5195  このエントリーをはてなブックマークに追加 

キーワード / アップデート    XAMPP   

新しいユーザーIDと名前を入力してボタンを押すと、DB内容がその入力した内容にアップデートされる物を作りたいのですが、できません。
ちなみに、パスワードが同じであれば書き換えられる
ものを作りたいのですが、可能ですか?
<html>
<body>
<?php
session_start();
if (isset($_POST['login'])) {
$_SESSION['userid'] = $_POST["userid"];
$_SESSION['name'] = $_POST["name"];

}
?>
<?php

$dsn = 'mysql:dbname=kakunabi;host=localhost';
$db['user'] = "hoge";  
$db['pass'] = "1234"; 


    $dbh = new PDO($dsn,$db['user'],$db['pass']);

// UPDATE文を実行
$sql = "update user SET user_id= ':userid' , name = ':name' where pass = ':pass'";
$stmt = $dbh->prepare($sql);
if (($_SESSION['pass'] !== ':pass')){
$params = array(':userid' => $_SESSION['userid'], ':name' => $_SESSION['name'],':pass' =>  $_SESSION['pass']);
$stmt->execute($params);

echo "更新完了";
 print($_SESSION['userid'].'.');
 print($_SESSION['name'].'.');
 print($_SESSION['pass'].'.');
echo"<a href='login.php'>戻る</a>";
exit();
}
?>
// 登録完了メッセージの表示
echo "更新完了";
<?php
 print($_SESSION['userid'].'.');
 print($_SESSION['name'].'.');
 print($_SESSION['pass'].'.');
?>
</body>
</html>


ツリー一覧

┗A01shimix>$sql = 'UPDATE user set user_id = $_SESSION['user
 ┗A01-1kumataro5195この意見は質問者によって削除されました。

回答一覧

並び替え:

A01
answerershimix [12月5日 16:59]

>$sql = 'UPDATE user set user_id = $_SESSION['userid'] where pass =  $_SESSION['pass']';

passが一致したレコードのuser_idを更新するSQL文になっていますが、これが質問者さんの「やりたいこと」でしょうか?


>データベースの内容をテキストボックスに入力されたデータに
>アップデートする

更新条件や更新するカラムが提示されていないと「そういうSQL文を書いてください」としか回答出来ません。

https://dev.mysql.com/doc/refman/5.6/ja/update.html

具体的な内容を提示してください。



なおupdate文を実行した場合には「結果セット」は返りません。queryメソッドでもいいですが(結果セットは捨てるだけになります)出来ればexecメソッドの方がいいと思います。

http://php.net/manual/ja/pdo.exec.php

この意見に回答する

ツリーへ TOPへ

A01-1
replyerkumataro5195 [12月6日 09:57]

この意見は質問者によって削除されました。

ツリーへ TOPへ

<<質問一覧へ



Pick Up Q&A

Q
ログファイルの中の空のデータ行を削除したい
 このエントリーをはてなブックマークに追加 
A
ログのデータ個数(列数)が固定で、空のログが"<><><>"だと既知であれば if ($line === "<><><>") { continue; } で読み飛ばしてもいいのでは? ...

>>続きを読む

まずは配列や文字列の扱いから、じっくり勉強して行きましょう。

▲解説者:岡本(アシアル株式会社 教育コーディネーター兼 システムエンジニア)