2012-04-27 3 views
0

フォームが特定のuser_IDの行であるにもかかわらず挿入されていない場合は、フォームを更新します。私は挿入を試みました...重複したキーの更新では、悲惨に失敗するので、これは私の次の試みです。 user_IDはユニークなインデックスではありませんが、テーブル内の「ID」は自動増分フィールドです。 User_IDは、セッションの基になるインデックスです。 これは私が今使用しているコードです:現時点ではelse updateを挿入します。

if (empty($err)) { 

     $thesis_Name = mysql_real_escape_string($_POST['thesis_Name']); 
     $abstract = mysql_real_escape_string($_POST['abstract']); 


$query="UPDATE thesis SET (`thesis_Name`='$thesis_Name', 
`abstract`='$abstract') WHERE id='$_SESSION[user_id]' 
IF ROW_COUNT()=0 
REPLACE INTO thesis (theis_Name,abstract)VALUES ('$thesis_Name', '$abstract') 
"; 

mysql_query($query) or die(); 
// query is ok? 

if (mysql_query($the_query, $link)){ 

// redirect to user profile 
    header('Location: myaccount.php?id=' . $user_id); 
    } 

提出押すと、私は空白のページを取得します。

+0

'$ the_query'は定義されていません。 – DCoder

+0

クエリに構文エラーがあり、 'die()'が実行されているため、空白のページが表示されています。 1つは、値を引用する必要があります。 - VALUES( '$ thesis_Name'、 '$ abstract') '; – Nadh

+0

the_queryがさらにアップしていますが、私は申し訳ありません。 – user1296762

答えて

2

は、あなたの代わりに "... INTOをREPLACE" しようとした持っている "INSERT INTO ..."

0

REPLACEはあなたが望むものです。 idUNIQUE KEYを定義する必要があります(定義がユニークなPRIMARY KEYでない場合)。

+0

はいidは主キーです! – user1296762

0

REPLACE INTOが答えです。それでもコードを使用したい場合は、クエリにセミコロンがありません。

$query="UPDATE thesis SET (`thesis_Name`='$thesis_Name', 
`abstract`='$abstract') WHERE id='$_SESSION[user_id]'; 
IF ROW_COUNT()=0 
INSERT INTO thesis (theis_Name,abstract)VALUES ($thesis_Name, $abstract) 
"; 
+0

insert intoの代わりにreplaceを使用することができます。しかし、$ abstractの後に構文エラーが出ます)。期待される。助けてくれてありがとう! – user1296762

関連する問題