2014-05-15 28 views
-4

我已經插入數據庫之前,但從未使用'where'功能。出於某種原因,它不是插入,而是死亡。INSERT到SQL數據庫

<?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

什麼是您的表結構? – scragar

+4

不清楚你想要做什麼 - WHERE建議你想要更新。無論哪種方式,你最好看看一些教程。 – OGHaza

+0

爲什麼你有'(錢)'......你打算做什麼......? – Vagabond

回答

4

這不是有效的SQL:

INSERT into members where name='$member'(money) VALUES ('100') 

我假設是這樣的:

update `members` set `money`=100 where `name`='$member'; 

理由:(錢)是一個字段,100是值(因爲這兩個從INSERT INTO成員(字段)VALUES(值)語法的角度來看最有意義)。

2

如果要更改現有數據,請使用update命令而不是insert。

3

永遠不會死()與固定的錯誤信息,特別是當您可以輸出實際原因時:... or die(mysql_error())

但是,你的問題是一個語法錯誤。 INSERT查詢做不是有一個WHERE子句 - where用於過濾已經在數據庫表中的記錄。這對於新紀錄沒有任何意義,因爲它不在表格中首先進行過濾。

您查詢應該基本上只是

INSERT into members (name, money) VALUES ('$member', '100') 

,請注意您易受SQL injection attacks,並且使用的是過時/過時的數據庫接口。

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"; 
?> 
0

對於插入:

$SQL = "INSERT INTO members(money) VALUES ('100')"; 

MySQL的INSERT語法確實不支持WHERE子句。 MySQL.com Insert Info

你實際上是在試圖插入一個新行還是更新現有的'member'?如果更新,然後嘗試:

UPDATE members SET money = 100, WHERE name='$member';