3
다음과 같은 종류의 오류가 내 웹 사이트에서 수시 발생합니다.Yii ActiveRecord 모델을 mysql 테이블에 삽입 할 때 오류가 발생했습니다.
2012/07/12 21:21:48 [error] [system.db.CDbCommand] Error in executing
SQL: INSERT INTO `seo_page` (`grouped`, `results_count`, `page`, `operation`, `subtype`, `type`, `state`, `zone`, `city`, `district`, `custom`, `property`, `date_add`, `date_upd`) VALUES (:yp0, :yp1, :yp2, :yp3, :yp4, :yp5, :yp6, :yp7, :yp8, :yp9, :yp10, :yp11, :yp12, :yp13)
기본적으로 코드가 작동, 그리고, 나는 동일한 기본 키를 사용하여 동시에 두 개의 삽입을하려고 할 때 난 단지 오류의 종류를 얻을 생각, 또는 어쩌면 아무튼 올바르게 모델을 저장 삽입하기 전에 키워드 입력란의 고유성을 확인하십시오.
가 삽입하거나 데이터베이스의 키워드를 업데이트 할 soposed되는 스크립트 코드는 다음과 같다 :
MySQL의 테이블은 다음과 같습니다static public function quickAdd($keyword) {
if (strlen($keyword['name'])==0)
return;
$seo_keyword = SeoKeyword::model()->find("keyword=:keyword", array("keyword"=>$keyword['name']));
if ($seo_keyword) {
// return;
} else {
$seo_keyword=new SeoKeyword();
}
$seo_keyword->keyword=$keyword['name'];
if (is_numeric($keyword['position'])) {
$seo_keyword->position=$keyword['position'];
}
try {
$seo_keyword->save();
} catch (Exception $e) {
}
return $seo_keyword;
}
: 나는 또한 얻고
CREATE TABLE IF NOT EXISTS `seo_keyword` (
`id_seo_keyword` int(11) NOT NULL AUTO_INCREMENT,
`keyword` varchar(255) NOT NULL,
`position` int(11) DEFAULT NULL,
`date_add` datetime NOT NULL,
`date_upd` datetime NOT NULL,
PRIMARY KEY (`id_seo_keyword`),
UNIQUE KEY `keyword` (`keyword`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=2 ;
이러한 종류의 다른 테이블과의 오류는 모두 행이 많고 주로 통계 데이터에 사용되는 테이블입니다.
사실 내가 삽입 할 수 없다는 것을 알 수 있지만 기본 키 문제, servery busy 또는 기타와 같은 오류는 없습니다.
'키워드'의 고유 키입니다. 이것이 원인입니다. – Pentium10