2012-12-09 34 views
1

好吧,即時做一個MySQL選擇,如果沒有結果,然後我們將插入它,如果有一個結果,我們更新它,但我得到 解析錯誤:語法錯誤,意外T_VARIABLE語法錯誤無法看到它出錯

這裏是我完整的代碼

$query = mysql_query("SELECT * from new_battles WHERE player1='".$_SESSION['username']."'"); 
if(mysql_num_rows($query)!=0) 
{# If row already exists, then update it. 

$result2 = mysql_query("UPDATE new_battles SET player1 = '"$_SESSION['username']"' AND player2 = '"$_SESSION['vsuser']"' 
AND onpokemonplayer1 = '1' AND onpokemonplayer2 = '1' WHERE player1 = '"$_SESSION['username']"' ") 
or die(mysql_error()); 
} 
else 
{# If row doesn't exist, then insert row. 
$result = mysql_query("INSERT INTO new_battles (player1, player2,onpokemonplayer1,onpokemonplayer2) VALUES('"$_SESSION['username']"', '"$_SESSION['vsuser']"' , '1', '1')") 
or die(mysql_error()); 
} 

它說的錯誤是在MySQL的更新有點...也許我用了許多和的???

+0

**擡起頭** PHP的未來版本是*自嘲和刪除*了'mysql_'系列函數!現在將是[切換到PDO](http://php.net/book.pdo)或[mysqli](http://php.net/book.mysqli)的好時機。 – Charles

回答

2

你忘了.來連接你的變量在查詢:

$result2 = mysql_query("UPDATE new_battles 
      SET player1 = '".$_SESSION['username']."', 
      player2 = '".$_SESSION['vsuser']."', 
      onpokemonplayer1 = '1', 
      onpokemonplayer2 = '1' 
      WHERE player1 = '".$_SESSION['username']."' ") or die(mysql_error()); 

編輯:問的意見,您更新查詢是錯誤的,更新多個字段,你需要將它們用逗號,而不是分開和。

+0

更新不會更新不起作用它更新表0 –

+0

將player1更新爲0 ... –

+0

然後,您的更新查詢是錯誤的,這不是你的原始問題。我更新了答案,你需要用逗號分隔列進行更新,而不是AND – koopajah

1

每一個語法錯誤,不得不面對string concatenation

<?php 
$query = mysql_query("SELECT * from new_battles WHERE player1='".$_SESSION['username']."'"); 
if(mysql_num_rows($query)!=0){# If row already exists, then update it. 

    $result2 = mysql_query("UPDATE new_battles SET player1 = '".$_SESSION['username']."' AND player2 = '".$_SESSION['vsuser']."' 
    AND onpokemonplayer1 = '1' AND onpokemonplayer2 = '1' WHERE player1 = '".$_SESSION['username']."' ") 
    or die(mysql_error()); 
}else{# If row doesnt exist, then insert row. 
    $result = mysql_query("INSERT INTO new_battles (player1, player2,onpokemonplayer1,onpokemonplayer2) VALUES('".$_SESSION['username']."', '".$_SESSION['vsuser']."' , '1', '1')") or die(mysql_error()); 
}?> 
+0

將player1更新爲0 –

+0

我不確定功能,我只說到語法錯誤 –