简体   繁体   English

更新MySQL数据库中的一行?

[英]updating a row in a mysql database?

Is it better to use INSERT, REPLACE or ON DUPLICATE KEY UPDATE, to update a row in my database? 使用INSERT,REPLACE或ON DUPLICATE KEY UPDATE来更新数据库中的行是否更好?

I'm currently using: 我目前正在使用:

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

to create new rows in the DB. 在数据库中创建新行。

pages_id is an auto_increment field in the mysql database. pages_id是mysql数据库中的一个auto_increment字段。 I'm not sure which is the best way to update an existing row in the database? 我不确定更新数据库中现有行的最佳方法是什么?

具有讽刺意味的是,您使用UPDATE来更新SQL中的行。

UPDATE pages SET ... WHERE pages_id = $pages_id;

If you are updating an existing row (and you're 100% sure it exists), definitely go for UPDATE. 如果要更新现有行(并且100%确保存在),则绝对要进行UPDATE。

BUT

If you are "updating" a row which may not exist, go for "INSERT...ON DUPLICATE KEY UPDATE". 如果要“更新”可能不存在的行,请进行“ INSERT ... ON DUPLICATE KEY UPDATE”。

Use UPDATE and specify the pages_id? 使用UPDATE并指定pages_id?

Here's a tutorial on UPDATE : UPDATE tutorial 这是有关UPDATE的教程: UPDATE教程

Little example: 小例子:

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

On a completely different note though, stop using mysql* functions and start working with PDO, it's a lot safer! 但是,完全不同的是,停止使用mysql *函数并开始使用PDO,这要安全得多!

INSERT is always a heavier operation than UPDATE . INSERT总是比UPDATE重。 INSERT has to allocate memory for the newly inserted item, while UPDATE performs search on the table and doesn't have look for new memory. INSERT必须为新插入的项目分配内存,而UPDATE在表上执行搜索,而不必寻找新的内存。 This difference becomes critical when you have to insert many records in a short period of time. 当您必须在短时间内插入许多记录时,这种差异变得至关重要。 Better to INSERT when DB is not very busy and then UPDATE when necessary. 最好在数据库不是很忙时INSERT ,然后在必要时进行UPDATE

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM