我通过编辑器(SQLyog)将新行上传到表中。该表已有数据。该表也在上传之前编入索引。上传新数据后,当任务在测试期间查找新数据时,代码会发出调试消息“无数据”(见下文),但它会返回预先存在的数据。此外,编辑器中的MySQL查询将返回新数据。
如果重要,该表是MyISAM表。
我应该怎么做才能让代码/函数返回新数据?
以下是返回调试消息的代码片段:
$code = $this->_addData($order_product['pid'],$order_product['qty'],$order_id);
$order_product['code'] = $code;
if(!$code) {
$this->log->debug('No data');
我有一种感觉,答案在于我在上传数据时没有做过的事情或在那里做错了,因为代码可以很好地找到现有数据。当然,我可能完全错了。
编辑:下面是addData函数。显然,那里还有一些额外的函数调用。同样,这些都适用于表中“预先存在的”数据,但似乎没有找到“新”数据行。
protected function _addData($product_id,$quantity,$order_id){
$this->load->model('checkout/data');
if($this->model_checkout_data->productHasCampaign($product_id)){
$this->_hasData = true;
$codes = $this->model_checkout_data->checkAvailableData($product_id,$quantity);
//if there is data, update them
if(count($codes) == $quantity){
foreach($codes as $code){
$this->model_checkout_data->confirmCode($code['id'],$order_id);
}
} else {
//Redirect to Cart
$this->session->data['error_code'] = ERROR_OUT_OF_DATA;
header('Location: index.php?checkout/cart');
return;
}
$this->model_checkout_data->updateProductQuantity($product_id);
$this->_Data[$product_id] = $codes;
return $codes;
}
return false;
}