2012-07-15 103 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