PHP&MySQLでクエリを送信した結果での質問です。


下記のようなPHPプログラムがあります。
このプログラムは入力されたIDとパスワードが正しければmylist(マイリスト)を
更新するようになっていると思うのですが、エラー表示の出し方が分かりません。
マイリストの更新が成功したかどうかをechoなどで表示したいと考えております。
どのようにしたらよろしいでしょうか?
追加するプログラムを教えてください。

<?php
$user_id="hatena";//POSTされてきたとします。以下同じ
$pswd="pass";
$mylist="パソコン,マウス,キーボード";

$link = mysql_connect('localhost', '●●●', '■■■');
mysql_select_db('▲▲▲', $link);
$result = mysql_query("UPDATE member SET mylist='$mylist' WHERE user_id='$user_id' AND pswd='$pswd'", $link);

mysql_close($link);
?>

回答の条件
  • 1人2回まで
  • 登録:
  • 終了:2007/04/12 20:49:55
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

回答1件)

id:gekikawa No.1

回答回数110ベストアンサー獲得回数11

ポイント60pt

$result = mysql_query("UPDATE member SET mylist='$mylist' WHERE user_id='$user_id' AND pswd='$pswd'", $link);

の次の行に

$check = mysql_affected_rows ( $link );

と入れておけば$checkに更新のあった行数が入ります。

なので、その次に

if($check == 0){

echo "IDまたはpassが間違っています";

}else{

echo "更新しました";

}

と入れておけばOK?

ちなみにuseridが同一の値はDBに入っていないんですよね?

id:t_yasu

gekikawa様

お世話になります。

有り難うございました。バッチリです。

行数が0であることがないので、それで判定しているのですね。

ところでDBに同一のIDは入っていませんが、入っていると何か問題があるのですか?

2007/04/12 20:48:33
  • id:gekikawa
    もしもDBに同一IDがあって、passまでも同じだったらとチョット思ったんです。

    そのような場合に今回のようなスクリプトが走ると、2つのデータが
    同時にUPDATEされてしまうので、マズイカナ?と思ったのですが大丈夫ですね。

  • id:kurukuru-neko

    まずいしょうね。

    同一ユーザIDを認めたい場合は、
    primary keyに (user_id,pswd)を
    指定しないとuser_id,pswdが一致する
    人がいた場合巻き添えになりますね。

    またuser_idでユニークになる設計にしないと
    "山田"さんがたくさんいた場合、たまたま
    パスワードに1234,1235と同じような
    値を設定していて何かの間違いで
    人のIDで操作(ログイン)できてしまいます。

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません