使用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字段。我不确定哪个是更新数据库中现有行的最佳方法?
答案 0 :(得分:3)
具有讽刺意味的是,您使用UPDATE
更新SQL中的行。
UPDATE pages SET ... WHERE pages_id = $pages_id;
答案 1 :(得分:3)
如果您要更新现有行(并且您100%确定它存在),请务必进行更新。
BUT
如果您正在“更新”可能不存在的行,请转到“INSERT ... ON DUPLICATE KEY UPDATE”。
答案 2 :(得分:0)
使用UPDATE
并指定pages_id?
以下是UPDATE
:UPDATE tutorial
小例子:
mysql_query("UPDATE pages SET pagename = $pagename WHERE pages_id = $page_id");
虽然完全不同,但是停止使用mysql *函数并开始使用PDO,它会更加安全!
答案 3 :(得分:0)
INSERT
总是比UPDATE
更重要的操作。 INSERT
必须为新插入的项目分配内存,而UPDATE
会在表格上执行搜索,并且不会查找新内存。当您必须在短时间内插入许多记录时,这种差异变得至关重要。当DB不是很忙时,INSERT
最好,必要时再UPDATE
。