我一直收到这个错误:您的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。