Magento 용 새 지급 모듈을 개발 중이며 설명 할 수없는 문제가 있습니다. 신용 카드 후 실행 다음 코드는 확인 :Magento - 데이터가 데이터베이스에 삽입되지 않았지만 ID가 자동 증가되었습니다.
$table_prefix = Mage::getConfig()->getTablePrefix();
$tableName = $table_prefix.'authorizecim_magento_id_link';
$resource = Mage::getSingleton('core/resource');
$writeconnection = $resource->getConnection('core_write');
$acPI = $this->_an_customerProfileId;
$acAI = $this->_an_customerAddressId;
$acPPI = $this->_an_customerPaymentProfileId;
$sql = "insert into {$tableName} values ('', '$customerId', '$acPI', '$acPI', '3')";
$writeconnection->query($sql);
$sql = "insert into {$tableName} (magCID, anCID, anOID, anObjectType) values ('$customerId', '$acPI', '$acAI', '2')";
$writeconnection->query($sql);
$sql = "insert into {$tableName} (magCID, anCID, anOID, anObjectType) values ('$customerId', '$acPI', '$acPPI', '1')";
$writeconnection->query($sql);
나는 SQL 쿼리 구문이 정확하고 오류가 반환됩니다 방화범과 FirePHP를 사용하여 확인했습니다.
여기서 이상한 점은 데이터베이스를 점검하고 자동 증가 값이 코드 실행마다 증가한다는 것입니다. 그러나 데이터베이스에 행이 삽입되지 않습니다. 첫 번째 쓰기 직후에 die();
문을 추가하여이를 확인했습니다.
왜 이런 현상이 발생하는지 알고 싶습니다.
<config>
<global>
<models>
<authorizecim>
<class>CPAP_AuthorizeCim_Model</class>
</authorizecim>
<authorizecim_mysql4>
<class>CPAP_AuthorizeCim_Model_Mysql4</class>
<entities>
<anlink>
<table>authorizecim_magento_id_link</table>
</anlink>
</entities>
<entities>
<antypes>
<table>authorizecim_magento_types</table>
</antypes>
</entities>
</authorizecim_mysql4>
</models>
<resources>
<authorizecim_setup>
<setup>
<module>CPAP_AuthorizeCim</module>
<class>CPAP_AuthorizeCim_Model_Resource_Mysql4_Setup</class>
</setup>
<connection>
<use>core_setup</use>
</connection>
</authorizecim_setup>
<authorizecim_write>
<connection>
<use>core_write</use>
</connection>
</authorizecim_write>
<authorizecim_read>
<connection>
<use>core_read</use>
</connection>
</authorizecim_read>
</resources>
</global>
</config>
편집 : 약자로 테이블을 생성하는 쿼리는 다음과 같습니다
CREATE TABLE `mag_authorizecim_magento_id_link` (
`link_id` INT(11) NOT NULL AUTO_INCREMENT,
`magCID` INT(11) NOT NULL,
`anCID` INT(11) NOT NULL,
`anOID` INT(11) NOT NULL,
`anObjectType` INT(11) NOT NULL,
PRIMARY KEY (`link_id`)
) ENGINE=INNODB AUTO_INCREMENT=44 DEFAULT CHARSET=utf8
다음 표를 함께 보내주십시오. – Zak
@Zak : 빠른 응답을 보내 주셔서 감사합니다. 테이블 def가 게시되었습니다. – Joseph