0

使用 INSERT、REPLACE 或 ON DUPLICATE KEY UPDATE 来更新数据库中的一行是否更好?

我目前正在使用:

mysql_query("insert into pages (pages_id, pagename, pagedesc, pagekey, pagecont) values('$pages_id', $pagename', '$pagedesc', '$pagekey', '$pagecont')");

在数据库中创建新行。

pages_id 是 mysql 数据库中的 auto_increment 字段。我不确定哪个是更新数据库中现有行的最佳方法?

4

4 回答 4

3

具有讽刺意味的是,您使用UPDATESQL 来更新一行。

UPDATE pages SET ... WHERE pages_id = $pages_id;
于 2012-05-16T13:12:36.953 回答
3

如果您要更新现有行(并且您 100% 确定它存在),请务必使用 UPDATE。

如果您要“更新”可能不存在的行,请选择“INSERT...ON DUPLICATE KEY UPDATE”。

于 2012-05-16T13:18:46.543 回答
0

使用UPDATE并指定 pages_id?

这里有一个教程UPDATE更新教程

小例子:

mysql_query("UPDATE pages SET pagename = $pagename WHERE pages_id = $page_id");

不过,在完全不同的情况下,停止使用 mysql* 函数并开始使用 PDO,它更安全!

于 2012-05-16T13:12:25.863 回答
0

INSERT总是比 更重的操作UPDATEINSERT必须为新插入的项目分配内存,同时UPDATE在表上执行搜索并且没有寻找新内存。当您必须在短时间内插入许多记录时,这种差异变得至关重要。最好INSERT在数据库不是很忙的时候,然后UPDATE在必要的时候。

于 2012-05-16T13:21:58.333 回答