1

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

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

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

不正确的代码:

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()); 对我的查询有所帮助。我应该首先想到的!:)

4

6 回答 6

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 类型时使用单引号

例如,如果表的字段为 myField02 varchar2(20),则在插入查询时将

INSERT INTO myTable values ('myValue');

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

INSERT INTO myTable values (myValue);
于 2012-05-17T08:37:18.233 回答
1

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

agecont, WHERE
于 2012-05-17T08:31:11.560 回答
1

将此添加到具有 mysql_query 的行:

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

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

于 2012-05-17T08:32:32.057 回答
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());

请注意,列名周围没有 ` 或 ',只有用于运行更新的变量。

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

于 2012-05-17T08:36:44.673 回答
0

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

在字段中使用 `(accent) 而不是 ' 并且在 where 之前有额外的 ,(comma)

于 2012-05-17T08:38:53.677 回答
0

您的查询中有两个错误,一个是comma在 where 之前,另一个是您用于single quotes字段名的错误。对字段名使用反引号而不是单引号。使用此查询。还要注意 sql 注入。采用mysql_real_escape_string().

mysql_query("UPDATE pages SET `pagename` = $pagename, `pagedesc` = $pagedesc, 
`agekey` = $pagekey, `pagecont` = $pagecont WHERE `pages_id` = $pages_id");
于 2012-05-17T08:41:26.720 回答