INSERT ... ON DUPLICATE KEY UPDATE问题

时间:2015-12-20 16:49:24

标签: php mysql

我有一个名为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;

0 个答案:

没有答案