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()与其执行的语句相关联?
这些问题具有特定的代码。
答案 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->查询();'