我有一个名为company_profile
的mysql表。它可能只有一个记录。所以我尝试使用INSERT.... ON DUPLICATE KEY UPDATE
查询插入和更新表的数据。
这是我尝试的方式:
$sql = "INSERT INTO company_profile (
company_name
, tel
, mobile
, fax
, email
) VALUES (?, ?, ?, ?, ?)
ON DUPLICATE KEY UPDATE
company_name= VALUES(company_name)
, tel = VALUES(tel)
, mobile = VALUES(mobile)
, fax = VALUES(fax)
, email = VALUES(email)";
$stmt = $mysqli->prepare($sql);
$stmt->bind_param('sssss', $company_name
, $telephone
, $mobile
, $fax
, $email
);
$stmt->execute();
我的问题是当我更新数据时,它总是在我的表中插入一条新记录。
有谁能告诉我这会是什么问题?
我的表格结构如下:
CREATE TABLE IF NOT EXISTS company_profile (
id INT UNSIGNED NOT NULL AUTO_INCREMENT,
company_name VARCHAR(120) NOT NULL,
tel VARCHAR(20) NOT NULL,
mobile VARCHAR(20) NOT NULL,
fax VARCHAR(20) DEFAULT NULL,
email VARCHAR(60) NOT NULL,
PRIMARY KEY (id),
UNIQUE KEY (id)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;