affected_rows()如何工作?

时间:2012-06-25 22:06:02

标签: php codeigniter

public function create($tableName, $userInput) {

    $this->db->insert($tableName, $userInput);
    return $this->db->affected_rows();

}

如您所见,$this->db->affected_rows();未引用任何特定资源/已执行语句。

affected_rows()一般会返回数据库中最新的affected_rows()吗?换句话说,如果我有50个用户调用create(...)函数,codeigniter如何将每个affected_rows()与其执行的语句相关联?

这些问题具有特定的代码。

1 个答案:

答案 0 :(得分:1)

在第337行的codeigniter system/database/drivers/mysql/mysql_driver.php中:

/**
 * Affected Rows
 *
 * @access  public
 * @return  integer
 */
function affected_rows()
{
    return @mysql_affected_rows($this->conn_id);
}

这基本上意味着CodeIgniter与标准PHP函数http://php.net/manual/en/function.mysql-affected-rows.php

之间没有区别

它返回受上一个查询影响的行数,所以如果你遇到问题并且它总是返回1,这意味着codeigniter会迭代你的查询,这个工作的快速解决方法是使用你自己的查询` $这 - > DB->查询();'