2011-02-10 7 views
0

私の計画は外部からデータベースに既存の/新しいレコードを更新/挿入することです。データベースに入るように情報が設定されていますが、すでに存在している。PHPとMYSQLこのMySQLの構文は正しいですか?更新/挿入の場合EXISTS

固有IDは、各行の終了時に行われる

$link = resdb::connect(); 
    $q = "IF (EXISTS (SELECT * FROM property AS this WHERE this.name = $propertyname))" 
     ."begin" 
      // UPDATE PROPERTY IF IT EXISTS 
      ."UPDATE property (name, propertylocation, propertyrating, propertytype)" 
      ."SET ($propertyname, $locationid, $ratingid, $typeid)"   
      ."WHERE name = $propertyname" 
     ."end" 
     ."ELSE" 
     ."begin" 
      ."INSERT INTO property (name, propertylocation, propertyrating, propertytype)" 
      ."VALUES ($propertyname, $locationid, $ratingid, $typeid)" 
     ."end"; 
    $r = mysqli_query($link, $q); 
    if($r > 0){ 
     return true; 
    } 

データベースのものをやっで試みた私の最初の。 MySQLのにINSERT ... ON DUPLICATE KEY UPDATE...

INSERT property (name, propertylocation, propertyrating, propertytype) 
VALUES ($propertyname, $locationid, $ratingid, $typeid) 
ON DUPLICATE KEY UPDATE 
    propertylocation = VALUES(propertylocation), 
    propertyrating = VALUES(propertyrating), 
    propertytype = VALUES(propertytype) 

ドキュメントを

ALTER TABLE property ADD UNIQUE KEY(name) 

今、あなたは使用することができます:

答えて

関連する問題