之前我已插入数据库但从未使用过'where'功能。出于某种原因,它不是插入,而是死亡。
<?php
$member=$_SESSION['member'];
$SQL = "INSERT into members where name='$member'(money) VALUES ('100')";
mysql_query($SQL) or die("Could not insert money");
print "Money successfully inserted";
?>
答案 0 :(得分:4)
这不是有效的SQL:
INSERT into members where name='$member'(money) VALUES ('100')
我会假设这样的事情:
update `members` set `money`=100 where `name`='$member';
理由:(money)是一个字段,100是物有所值(因为那些2从INSERT INTO成员(字段)VALUES(值)语法的角度来看最有意义)。
答案 1 :(得分:3)
永远不要带有固定错误消息(),尤其是当您输出实际原因时:... or die(mysql_error())
。
但是,是的,您的问题是语法错误。 INSERT
查询 NOT 有WHERE
子句 - where
用于过滤数据库表中已有的记录。这对于新记录没有意义,因为它不是首先要过滤的表格。
您的查询基本上应该只是
INSERT into members (name, money) VALUES ('$member', '100')
请注意,您容易受SQL injection attacks攻击,并且正在使用已弃用/过时的数据库界面。
答案 2 :(得分:2)
如果要更改现有数据,请使用update命令而不是insert。
答案 3 :(得分:1)
您不能将WHERE子句与INSERT命令一起使用
http://dev.mysql.com/doc/refman/5.0/en/insert.html
您必须进行更新
<?php
$member=$_SESSION['member'];
$SQL = "UPDATE `members` SET `money`='100' WHERE `name`='$member'; ";
mysql_query($SQL) or die("Could not insert money");
print "Money successfully inserted";
?>
答案 4 :(得分:0)
用于插入:
$SQL = "INSERT INTO members(money) VALUES ('100')";
MySQL INSERT语法不支持WHERE子句。 MySQL.com Insert Info
您实际上是在尝试插入新行,还是更新现有的&#39;成员?如果更新,请尝试:
UPDATE members SET money = 100, WHERE name='$member';