0

ID(UNIQUE)、名前、性別、生年月日、マークなどを持つクラスの学生のサンプルデータベースがあります。

私がやろうとしていることは次のとおりです。

  1. 学生が自分のデータを入力していない場合は、データを挿入する必要があります。
  2. 生徒が 2 回目に使用している場合は、時間が更新されます。以下のコードを使用しましたが、機能しません。

ありがとう!!

// open connection 
      $con = mysql_connect($host, $user, $pass) or die ("Unable to connect!"); 
      // select database 
      mysql_select_db($db) or die ("Unable to select database!");
      mysql_query("INSERT INTO UserData VALUES ('$id','$name','$gender','$email','$birthday','Marks','NOW()')");
      mysql_close($con);
4

4 に答える 4

1

クエリでフィールド名を使用することを強くお勧めします。

INSERT INTO UserData (`id`, `name`, `gender`, `email`, `bday`, `marks`, `time`)
VALUES ('$id','$name','$gender','$email','$birthday', $marks, NOW())
ON DUPLICATE KEY UPDATE `time` = NOW()

id一意のインデックスがある(またはそれが主キーである)と仮定しています。また、上記のクエリの列名をスキーマに従って実際の列名に置き換えてください。

詳細については、こちらを参照しください。

テーブル スキーマを投稿していただければ、使用する必要がある正確なクエリを提供できます。

于 2011-03-29T02:12:36.437 に答える
0

囲まれている引用符を削除して、MYSQL関数であるNOW() ため、代わりに'NOW()'ただにする必要がありますNOW()

于 2011-03-29T06:10:47.203 に答える
0

INSERT!=UPDATE

UPDATE既存のレコードを更新する場合は、クエリを作成する必要があります。クエリを使用できますREPLACEが、行全体が上書きされます。

于 2011-03-29T01:43:18.637 に答える
0

次のようなコードを記述できるPropelのような ORM を使用することをお勧めします。

$user = UserQuery::create()->findPK($id);
if(!$user) {
  $user = new User();
  $user->setId($id);
}
$user->setName($name);
$user->setGender($gender);
$user->setEmail($email);
$user->save();
于 2011-03-29T01:47:35.100 に答える