このコードがこれらの行の列を更新しない理由を教えてください。
$q2 = $db->prepare("insert into stat (clan_id,abbreviation) values (:cid,:abb) ON DUPLICATE KEY UPDATE abbreviation=:abb");
$q2->execute(array(
":cid"=>$somevalue,
":abb"=>$abbrev
));
省略形は、このテーブルの一意のキーです。値は他にもありますが、わかりやすくするために一部を削除しました。
編集: 問題はまだ存在します。PDO は新しいエントリを追加していますが、重複に遭遇すると更新されません
ここにテーブル構造がありますが、ここに何か問題があるのでしょうか?
CREATE TABLE IF NOT EXISTS `stats` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`clan_id` varchar(168) NOT NULL,
`abbreviation` varchar(64) NOT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `abbreviation` (`abbreviation`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=155146 ;