INSERT进入sql数据库

时间:2014-05-15 14:26:51

标签: php sql

之前我已插入数据库但从未使用过'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";
?>

5 个答案:

答案 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';