2012-07-15 65 views
0

我的腳本是否正確? 我想要的是檢查ID是否存在,然後更新如果不存在然後INSERT。PHP Mysql檢查行是否存在編號

$sqlCheckRow = mysql_query("SELECT * FROM wctilerack WHERE gameID = '$up_gameID' ") or die (mysql_error()); 
$rowCounted = mysql_num_rows($sqlCheckRow); 
if ($rowCounted == '0') { 
    // INSERT wctilerack 
    $sqlTileINSERT = mysql_query("INSERT INTO wctilerack VALUE('', '$up_gameID', '$up_email_player1', '$playerRack') ") or die (mysql_error()); 
} elseif ($rowCounted == '1') { 
    // INSERT wctilerack 
    $sqlTileINSERT = mysql_query("UPDATE wctilerack SET tiles = '$playerRack' WHERE gamedID = '$up_gameID' ") or die (mysql_error()); 
} 

我測試了它的工作,我只是想確認過程是否正確。

謝謝

回答

1

你也可以這樣做

if (empty($rowCounted)) 
{ 
    $sqlTileINSERT = mysql_query("INSERT INTO wctilerack VALUE('', '$up_gameID', '$up_email_player1', '$playerRack') ") or die (mysql_error()); 
} 
else 
{ 
    $sqlTileINSERT = mysql_query("UPDATE wctilerack SET tiles = '$playerRack' WHERE gamedID = '$up_gameID' ") or die (mysql_error()); 
} 
+0

謝謝你我也會試試這個 – user1506189 2012-07-15 15:04:41

1

你可以寫這樣的

INSERT INTO wctilerack VALUES ('', '$up_gameID', '$up_email_player1', '$playerRack') 
    ON DUPLICATE KEY UPDATE tiles='$playerRack'; 
+0

問題是什麼+ 1? – user1506189 2012-07-15 15:03:43

+0

'c = c + 1'的意思是「將1加到'c',然後將'c'設置爲該值。所以,在重複密鑰的情況下,它將'c'加1。 – Polynomial 2012-07-15 15:07:19

+0

對不起,我之前很匆忙。我已經重寫了這個查詢,所以它適合你想要做的事情。 – 2012-07-15 20:53:57

0

試試這個::

INSERT into table values (vcolumn1, vcolumn2) on duplicate key update set column1=vcolumn1, column2=volumn2 
+0

謝謝你我會試試這個 – user1506189 2012-07-15 15:04:12