这是我的表:(唯一的主键是alias
)
$sql = "CREATE TABLE IF NOT EXISTS Articls
(
id INT(10) UNSIGNED AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(254) COLLATE utf8_persian_ci NOT NULL,
alias INT(10) UNSIGNED NOT NULL, # alias name for url
title VARCHAR(254) NOT NULL COLLATE utf8_persian_ci NOT NULL,
UNIQUE (alias)
) DEFAULT COLLATE utf8_persian_ci";
如果alias
在表中不存在,我想插入一条新记录到DB;如果别名之前已经存在,我想更新表。
我试过了,但是没有成功。
$sqlname = "name,alias,title";
$sqlValue = "'".$node['name']."','".$node['alias']."','".$node['title']."'";
$sql = "INSERT INTO Articls (".$sqlname.")
VALUES (".$sqlValue.")
ON DUPLICATE KEY UPDATE
(".$sqlname.") VALUES (".$sqlValue.")";
我也尝试了这个代码没有成功…它只是创建一个新记录,不更新:
$sql = "INSERT INTO Articls (".$sqlname.")
VALUES (".$sqlValue.")
ON DUPLICATE KEY UPDATE title = 'test',alias = '".$node['alias']."'";
语法:
ON DUPLICATE KEY UPDATE
(".$sqlname.") VALUES (".$sqlValue.")";
是不正确的
用途:
ON DUPLICATE KEY UPDATE <fieldname> = <fieldvalue>, <fieldname> = <fieldvalue>...