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の更新ビットにあると言われています...多分私は多くのものを使用しています???

4

2 に答える 2

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());

EDIT:コメントで尋ねられたように、UPDATEクエリは間違っていました。複数のフィールドを更新するには、ANDではなくコンマで区切る必要があります。

于 2012-12-09T00:02:46.703 に答える
1

すべての構文エラーは、文字列の連結を処理する必要がありました:

<?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());
}?>
于 2012-12-09T00:03:42.110 に答える