PHP/MySQL更新代码

PHP/MySQL更新代码,php,mysql,database,Php,Mysql,Database,我正在尝试调用从php到mysql数据库的行更新。它失败了,但当我尝试调用一个格式相同的插入新行时,它仍然有效 $result = mysql_query("INSERT INTO auth (username, password, studycode, description, server) VALUES ('$username', '$password', '$studycode', '$description', '$server')"); 但是这个代码失败了 $result = my

我正在尝试调用从php到mysql数据库的行更新。它失败了,但当我尝试调用一个格式相同的插入新行时,它仍然有效

$result = mysql_query("INSERT INTO auth (username, password, studycode, description, server) VALUES ('$username', '$password', '$studycode', '$description', '$server')");
但是这个代码失败了

$result = mysql_query("UPDATE auth SET username='$username', password='$password', studycode='$studycode', description='$description', server='$server' WHERE index='$id' LIMIT 1;");
索引是表的第一列及其键/id

编辑: 好的,所以我进入了mysql管理员,尝试了我的代码发送的跟踪错误的确切命令

UPDATE auth SET username='username', password='password', studycode='ab9102y', description='test change', server='server2' WHERE index='5' LIMIT 1;
告诉我错误

#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'index='5' LIMIT 1' at line 1 
你有“更新atuh”而不是“更新授权”。此处或代码中存在拼写错误

编辑:尝试删除索引“$id”周围的引号,并且您希望从中的查询中删除分号。

您使用的是“UPDATE atuh”而不是“UPDATE auth”。此处或代码中存在拼写错误

编辑:尝试删除索引“$id”周围的引号,并且您希望从中的查询中删除分号。

尝试此操作

$result=mysql_查询(“更新身份验证集用户名='$username',密码='$password',studycode='$studycode',description='$description',server='$server'其中索引='$id')

试试这个


$result=mysql_查询(“更新身份验证集用户名='$username',密码='$password',studycode='$studycode',description='$description',server='$server'其中索引='$id')

可能是索引中的保留关键字问题。尝试:

$result = mysql_query("UPDATE auth SET username='$username', password='$password', studycode='$studycode', description='$description', server='$server' WHERE `index` ='$id'");

可能是索引中的保留关键字问题。尝试:

$result = mysql_query("UPDATE auth SET username='$username', password='$password', studycode='$studycode', description='$description', server='$server' WHERE `index` ='$id'");

我相信这是因为单词
index
在MySQL中是一个保留字。因此,您需要将where子句更改为:

WHERE `index` = '$id'

请注意索引周围的记号。

我相信这是因为单词
index
在MySQL中是一个保留字。因此,您需要将where子句更改为:

WHERE `index` = '$id'

请注意索引周围的记号。

为了避免此类问题,我通常将我的表命名如下:(例如,用户表)

旁注:
了解准备好的陈述;我会非常害怕使用您那里的SQL代码。

为了避免此类问题,我通常将我的表命名为:(例如,用户表)

旁注:
了解准备好的陈述;我会非常害怕使用您那里的SQL代码。

“失败”是什么错误?你确定有一条记录带有你要传递的ID吗?你得到了什么错误?将代码更改为:$result=mysql\u query(…)或die(“Error:.mysql\u Error());“失败”与什么错误?你确定有一条记录带有你要传递的ID吗?你得到了什么错误?将代码更改为:$result=mysql\u query(…)或die(“Error:.mysql\u Error());就是我复制的那一部分,就是我复制的那一部分,就是这个。谢谢你,伙计!你真的应该在这里清理你的输入,以防止注入,不管是用准备好的语句还是转义值。老实说,如果你总是在所有字段周围放上's'作为标准做法,这是最简单的。这里有大量的保留字,有些是非常好的字段名(
desc
),这就做到了。谢谢你,伙计!你真的应该在这里清理你的输入,以防止注入,不管是用准备好的语句还是转义值。老实说,如果你总是在所有字段周围放上's'作为标准做法,这是最简单的。有大量的保留字,有些是非常好的字段名(
desc
非常常见)。