使用WHERE在MySQL中更新查询

时间:2011-11-24 17:07:20

标签: php mysql

我正在运行以下UPDATE查询并且没有成功:

$sql="UPDATE users SET firstname='".$_GET['fn']."',lastname='".$_GET['ln']."',email='".$_GET['emadd']."' WHERE id = ".$_GET['id'];

mysql_error();虽然我确定这是一个语法问题,但不会返回任何错误。

如果你可以帮我清理一下,帮我弄清楚哪里出错了,我将非常感谢!

为了给出更大的参考点,这里是表创建代码:

$sql="CREATE TABLE users
(
id int NOT NULL auto_increment,
PRIMARY KEY(id),
firstname varchar(20),  
lastname varchar(20),
email varchar(40)
)";

这是我的updater.php中的整个代码,它在表上运行更新查询:

mysql_select_db(dustin,$con);
$sql="UPDATE users SET firstname='".$_GET['fn']."',lastname='".$_GET['ln']."',email='".$_GET['emadd']."' WHERE id = ".$_GET['id'];
$sherlock=mysql_query($sql,$con);

echo $ sql返回以下内容:

UPDATE users SET firstname='Mike',lastname='Wilson',email='mike@eyeball.com' WHERE id = 

这是否意味着我的身份证不会被传递?

要查看它的实际效果,请转到24.77.236.155/dustin/Assignment2/users.php并单击编辑以使用该查询。另外,24.77.236.155/dustin/Assignment2/add.htm可用于将用户添加到表中。

3 个答案:

答案 0 :(得分:3)

查询似乎很好,我假设它没有更新表?

调试此方法的一种方法是在下一行中回显$ sql,以查看您为GET变量接收的值以及传递给数据库的实际查询。

echo $sql;

答案 1 :(得分:1)

始终以这种方式运行所有查询

$result = mysql_query($sql,$con) or trigger_error(mysql_error(). " ".$sql); 

不像这里的答案中的一些猜测,它会给你完整和完整的问题图片。

答案 2 :(得分:0)

您在where位

中缺少引号

即。

...where id='" . $GET['id] . "'";

通过使用$ GET而不检查这些值,您也遇到了安全问题。