mysql更新查询不起作用?

时间:2012-05-17 08:29:16

标签: php mysql html

编辑:现在修复了!谢谢你的帮助!

对于初学者问题,我正在创建一个简单的页面,为我的团队网站编辑另一个页面。

这是我正在使用的代码,但它没有更新数据库。

代码不正确:

mysql_query("UPDATE pages SET `pagename` = $pagename, `pagedesc` = $pagedesc, 
`agekey` = $pagekey, `pagecont` = $pagecont WHERE `pages_id` = $pages_id") or die(mysql_error());

正确的代码:

mysql_query("UPDATE pages SET pagename = '$pagename', pagedesc = '$pagedesc', pagekey = '$pagekey', pagecont = '$pagecont' WHERE pages_id = $pages_id") or die(mysql_error());

使用``根本不起作用。但是添加或死(mysql_error());我的查询帮助。我应该先考虑一下! :)

6 个答案:

答案 0 :(得分:2)

你的mysql查询不应该是

mysql_query("UPDATE pages SET pagename = '$pagename', pagedesc = '$pagedesc', pagekey = '$pagekey', pagecont = '$pagecont' WHERE pages_id = $pages_id");

而不是

mysql_query("UPDATE pages SET 'pagename' = $pagename, 'pagedesc' = $pagedesc, 'pagekey' = $pagekey, 'pagecont' = $pagecont, WHERE 'pages_id' = $pages_id");

您在字段名称中使用'(单引号)。当数据类型为varchar

时,使用单引号

e.g。如果table的字段为myField02 varchar2(20),那么插入查询时将是

INSERT INTO myTable values ('myValue');

如果该字段不是varchar,则不要使用单引号

INSERT INTO myTable values (myValue);

答案 1 :(得分:1)

在SQL语句中有一个额外的“,”。

agecont, WHERE

答案 2 :(得分:1)

将其添加到具有mysql_query:

的行
mysql_query("<QUERY GOES HERE>") or die(mysql_error());

这将显示查询中的确切错误。

答案 3 :(得分:0)

您的问题是您没有检查您的查询是否确实成功。编辑:认为你有这个。

SQL查询中存在一些语法错误:

例如

// Your code
UPDATE pages SET 'pagename' = $pagename

// How SQL expects
UPDATE pages SET pagename = '$pagename'

请注意,仅在我们想要放入的变量周围引用单引号。

重写SQL查询:

mysql_query("UPDATE pages 
             SET pagename = '{$pagename}',
                 pagedesc = '{$pagedesc}',
                 agekey   = '{$pagekey}',
                 pagecont = '{$pagecont}' 
             WHERE pages_id = '{$pages_id}'") or die(mysql_error());

请注意,列名称没有“或”#39;围绕它们,只有你用来运行更新的变量。

编辑:答案已更新,以显示他的错误在哪里

答案 4 :(得分:0)

  

mysql_query(“UPDATE pages SET pagename ='$ pagename',pagedesc =   '$ pagedesc',pagekey ='$ pagekey',pagecont ='$ pagecont'WHERE   pages_id = $ pages_id“);

在字段中使用`(重音)代替',在你之前使用额外的(逗号)

答案 5 :(得分:0)

您的查询中有两个错误:comma之前和之后您使用single quotes作为字段名称。对于fieldname,请使用backtic而不是单引号。使用此查询。还要注意sql注射。使用mysql_real_escape_string().

mysql_query("UPDATE pages SET `pagename` = $pagename, `pagedesc` = $pagedesc, 
`agekey` = $pagekey, `pagecont` = $pagecont WHERE `pages_id` = $pages_id");