1

メールしかない既存のテーブルを更新したいのですが、名前と姓を追加したいのですが、このコードは機能しますか?

     UPDATE table
     SET fname='$fname', lname='$lname'
      WHERE email= '$_SESSION['email'].';

それともこれも使えますか

     $sql="INSERT INTO            $tbl_name(fname, lname)VALUES( '$fname, $lname')"  WHERE email= '$_SESSION['email'].';
4

4 に答える 4

-1

関数を使用している場合はmysql_、入力もエスケープする必要があります。

$email = mysql_real_escape_string($_SESSION['email']);

ばかのための免責事項: これは、私が関数の使用を提案することを意味するものではありませんmysql_*。代わりにmysqliまたはを使用してください。PDO

また、クエリの値をチェックしNULLて空の値にする必要があります。

$sql = "REPLACE INTO " . $table . "
        SET email='" . $email . "'
        WHERE email='" .  $email . "'
          AND email IS NOT NULL
          AND email != ''";

http://dev.mysql.com/doc/refman/5.0/en/replace.htmlから:

REPLACE は INSERT とまったく同じように機能しますが、テーブル内の古い行が PRIMARY KEY または UNIQUE インデックスの新しい行と同じ値を持つ場合、新しい行が挿入される前に古い行が削除される点が異なります。

これが正確に適合しない場合は反対票を投じないでください。その場合は、INSERTまたはUPDATE同じ構文を使用してください。

于 2013-09-18T06:45:15.320 に答える