我正在运行以下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可用于将用户添加到表中。
答案 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而不检查这些值,您也遇到了安全问题。