Codeigniter affected_rows 插入行时总是返回 0
Codeigniter affected_rows always returning 0 when rows inserted
我正在对 table 进行插入,只有在更新正确插入时脚本才会继续。
if($this->db->affected_rows() > 0){}
在我的应用程序中的其他地方工作得很好,但由于某种原因,它有时不会而且总是 returns 0
片段如下
while($asked_order_amount_needed > 0){
$matches_attempted = 0;
$matched_orders = $query->result_array();
foreach($matched_orders as $matched_order){
//we can fill the submitted order completely with a matched order with a higher volume then the ask volume so try this first
if($matched_order['amount'] >= $ask['amount']){
$ask_history = array(
'order_type' => $ask['order_type'],
'amount' => $ask['amount'],
'price' => $ask['price'],
'entry_by' => $ask['entry_by'],
'status' => 'filled',
'buy_currency_name' => $ask['buy_currency_name'],
'sell_currency_name' => $ask['sell_currency_name'],
'timestamp' => date('Y-m-d H:i:s')
);
$dump = $this->db->insert('tb_order_book_history', $ask_history);
//$sql = $this->db->last_query();
if($this->db->affected_rows() > 0){
我在 $this->db->insert('tb_order_book_history',$ask_history);
前面添加了 $dump =
仅用于调试以检查输出,returns 正确并且我已经复制了
的 $sql
值
$sql = $this->db->last_query();
运行 它通过 MySQL 工作台插入它很好,我还检查了 table 在通过此函数 运行 应用程序之后,数据正在被插好了。现在,除非我盯着代码看得太久而遗漏了一些非常简单的东西,否则我不知道为什么它会这样。
非常感谢任何想法。
而不是 $this->db->affected_rows()
为什么不与 $this->db->insert_id()
一起尝试呢?您可以像
一样使用它
$this->db->insert('tb_order_book_history',$ask_history);
$dump = $this->db->insert_id();
if(!empty($dump) && $dump > 0){
// your code
}
我正在对 table 进行插入,只有在更新正确插入时脚本才会继续。
if($this->db->affected_rows() > 0){}
在我的应用程序中的其他地方工作得很好,但由于某种原因,它有时不会而且总是 returns 0
片段如下
while($asked_order_amount_needed > 0){
$matches_attempted = 0;
$matched_orders = $query->result_array();
foreach($matched_orders as $matched_order){
//we can fill the submitted order completely with a matched order with a higher volume then the ask volume so try this first
if($matched_order['amount'] >= $ask['amount']){
$ask_history = array(
'order_type' => $ask['order_type'],
'amount' => $ask['amount'],
'price' => $ask['price'],
'entry_by' => $ask['entry_by'],
'status' => 'filled',
'buy_currency_name' => $ask['buy_currency_name'],
'sell_currency_name' => $ask['sell_currency_name'],
'timestamp' => date('Y-m-d H:i:s')
);
$dump = $this->db->insert('tb_order_book_history', $ask_history);
//$sql = $this->db->last_query();
if($this->db->affected_rows() > 0){
我在 $this->db->insert('tb_order_book_history',$ask_history);
$dump =
仅用于调试以检查输出,returns 正确并且我已经复制了
的$sql
值
$sql = $this->db->last_query();
运行 它通过 MySQL 工作台插入它很好,我还检查了 table 在通过此函数 运行 应用程序之后,数据正在被插好了。现在,除非我盯着代码看得太久而遗漏了一些非常简单的东西,否则我不知道为什么它会这样。
非常感谢任何想法。
而不是 $this->db->affected_rows()
为什么不与 $this->db->insert_id()
一起尝试呢?您可以像
$this->db->insert('tb_order_book_history',$ask_history);
$dump = $this->db->insert_id();
if(!empty($dump) && $dump > 0){
// your code
}