1

このコードがこれらの行の列を更新しない理由を教えてください。

$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 ;
4

0 に答える 0