我有以下代碼段我努力從貝寶交易寫入MySQL數據庫。我只包含了相關的Zend DB日誌部分,根據數據輸出,Paypal界面工作正常。Zend Framework 2日誌記錄到MySQL數據庫額外的列插入null
$paypalLog = array(
'transactionId' => 'transactionId',
'transactionType' => 'transactionType',
'paymentType' => 'paymentType',
'orderTime' => 'orderTime',
'amt' => 'amt',
'currencyCode' => 'currencyCode',
'feeAmt' => 'feeAmt',
'taxAmt' => 'taxAmt',
'paymentStatus' => 'paymentStatus',
'pendingReason' => 'pendingReason',
'reasonCode' => 'reasonCode'
);
$data = array(
'transactionId' => $transactionId,
'transactionType' => $transactionType,
'paymentType' => $paymentType,
'orderTime' => $orderTime,
'amt' => $amt,
'currencyCode' => $currencyCode,
'feeAmt' => $feeAmt,
'taxAmt' => $taxAmt,
'paymentStatus' => $paymentStatus,
'pendingReason' => $pendingReason,
'reasonCode' => $reasonCode
);
$mapping = array(
'message' => 'message',
'extra' => $data);
print_r($mapping);
$writer = new Zend\Log\Writer\Db($db, 'paypal', $paypalLog);
$logger = new Zend\Log\Logger();
$logger->addWriter($writer);
$logger->info($mapping);
當我運行我的代碼打印返回下面這樣的數據是可用的
Array ([message] => message [extra] => Array ([transactionId] => 03V084280U905161H [transactionType] => expresscheckout [paymentType] => instant [orderTime] => 2013-02-12T01:16:40Z [amt] => 9.00 [currencyCode] => AUD [feeAmt] => 0.52 [taxAmt] => 0.00 [paymentStatus] => Completed [pendingReason] => None [reasonCode] => None))
我的表被定義爲以下內容,我已經授予完全權限的用戶。
CREATE TABLE `paypal` (
`timestamp` varchar(45) DEFAULT NULL,
`priority` varchar(45) DEFAULT NULL,
`priorityName` varchar(45) DEFAULT NULL,
`message` varchar(45) DEFAULT NULL,
`transactionId` varchar(45) NOT NULL,
`transactionType` varchar(45) DEFAULT NULL,
`paymentType` varchar(45) DEFAULT NULL,
`orderTime` datetime DEFAULT NULL,
`amt` varchar(45) DEFAULT NULL,
`currencyCode` varchar(45) DEFAULT NULL,
`feeAmt` varchar(45) DEFAULT NULL,
`taxAmt` varchar(45) DEFAULT NULL,
`paymentStatus` varchar(45) DEFAULT NULL,
`pendingReason` varchar(45) DEFAULT NULL,
`reasonCode` varchar(45) DEFAULT NULL,
PRIMARY KEY (`transactionId`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1$$
但是,當我在MySQL的一端運行跟蹤時,它只是試圖插入空值。
130212 12:19:38 29 Connect [email protected] on database
29 Query INSERT INTO `paypal`() VALUES()
29 Quit
任何想法歡迎!
我認爲這是右前方的一步但仍然無法實現它的工作。如果我檢查Logger.php函數被定義爲'/ ** * @param string $ message * @param array | traversable $ extra * @return Logger */public function info($ message,$ extra = array ()) { return $ this-> log(self :: INFO,$ message,$ extra); ($ mapping ['message'],$ mapping ['extra']);''和'$ logger-> info('message',$ data);''logger->但仍然相同null插入 – LJT 2013-02-13 09:11:00
看看我的編輯。現在這真的應該工作。 – cathulhu 2013-02-14 10:40:10
太好了,非常感謝,讓我越過了界限,請參閱下面的答案。 – LJT 2013-02-15 07:07:56