您的SQL语法有错误;检查


You have an error in your SQL syntax; check

我一直收到这个错误:您的SQL语法中有一个错误;在第1行的'WHERE username='username'VALUES('value')'附近,查看与MySQL服务器版本相对应的手册,以获得正确的语法。代码应该取登录用户在表单中输入的值,然后将该值插入表的money列。

 <?php include("auth.php");?>
 <?php
 if(isset($_POST['submit']))
 {

 $getmoney = @mysql_query("INSERT INTO players (money) WHERE username = 
'".$_SESSION['username']."' VALUES ('$_POST[amount]')")
 or die("Error: ".mysql_error());
echo '
<div style="
  top: 395;
  left: 99;
  position: absolute;
  z-index: 1;
  visibility: show;">
 Money Received.
 </div>
 ';
  }
  ?>
  </head>
  <body>
  <p>Bank</p>
  Enter amount of money to recieve.<br>
  <form action="bank.php" method="post">
  <table border=2>
  <tr>
  <td>Amount to Receive:</td><td><input type="text" name="amount" size="20px"></input>    
  </td>
  </tr>
  </table>
  <input type="submit" name="submit" value="Get Money"></input>
  </form><br><br>
<hr size=2>
<?php include("footer.php");?>
  </body>
  </html>

查询语法错误。

@mysql_query("INSERT INTO players (money) VALUES (".$_POST[amount].") WHERE username = '".$_SESSION['username']."'";)

语法

INSERT INTO table_name(field1, field2...) VALUES (value1, value2,...) WHERE CONDITION

编辑:如果要更新值,(更新查询)

@mysql_query("UPDATE players SET money = money+".$_POST[amount]." WHERE username = '".$_SESSION['username']."'";)

此外,您的查询容易受到SQL注入的影响,因此您可能希望使用PDO/MySQLi,或者至少对用户传递的所有值调用mysql_real_escape_string()。读这个。

您正试图进行以下SQL调用:

"INSERT INTO players (money) WHERE username = 
'".$_SESSION['username']."' VALUES ('$_POST[amount]')"

这不是一个有效的MySQL查询。而且它是糟糕的PHP。你可能想这么做:

"INSERT INTO players(username,money) VALUES
    ('".$_SESSION['username']."','".$_POST['amount']."')"

实际上,这是不安全的,所以你可能希望PHP看起来像这样:

<?php
    $usr = mysql_real_escape_string($_SESSION['username']);
    $amt = mysql_real_escape_string($_POST['amount']);
    $sql = "INSERT INTO players(username,money) VALUES ('$usr','$amt')";
    $getmoney = @mysql_query($sql);

但是,当然,我假设您想要执行INSERT而不是UPDATE。