0

2つの更新クエリを1つの`$resultとして実行しようとしています。これは可能ですか。もしそうなら、誰かが以下のクエリのどこが間違っているのか教えてください。

$query = "INSERT INTO ptb_users (id, user_id, first_name, last_name, email, password )
    VALUES('NULL','NULL','" . $firstname . "','" . $lastname . "','" . $email . "',MD5('" . $password . "'))";

mysql_query($query) or dieerr();
$result = mysql_query("UPDATE ptb_users SET ptb_users.user_id=ptb_users.id UPDATE ptb_users SET ptb_users.account_type= \"Client\"");
4

2 に答える 2

0

WHEREに句がないためUPDATE、次のように組み合わせることができます。

UPDATE ptb_users SET ptb_users.user_id = ptb_users.id,
  ptb_users.account_type = 'Client'

編集UPDATE行が必要な場合は、編集してINSERTから追加するだけです( IDを取得するためにWHERE ptb_users.id = $id使用できます)。mysql_insert_id()

$query = "INSERT INTO ptb_users (id, user_id, first_name, last_name, email, password )
    VALUES('NULL','NULL','" . $firstname . "','" . $lastname . "','" . $email . "',MD5('" . $password . "'))";

mysql_query($query) or dieerr();
$id = mysql_insert_id();
$result = mysql_query("UPDATE ptb_users SET ptb_users.user_id = ptb_users.id,
      ptb_users.account_type = 'Client' WHERE ptb_users.id =".$id);
于 2013-03-15T17:33:55.853 に答える
0

Mysql* 関数は非推奨です。代わりにPDO/mysqliを使用してください。

セキュリティ対策として、mysql* 関数では複数のクエリを実行できません。Mysql* でも可能ですが、実行前にステートメントを準備する必要があります。

于 2013-03-15T17:34:38.750 に答える