0
public function create($tableName, $userInput) {

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

}

ご覧のとおり$this->db->affected_rows();、特定のリソース/実行済みステートメントを参照していません。

Impacted_rows()は、データベース内の最新のaffected_rows()を一般的に返しますか?言い換えると、50人のユーザーがcreate(...)関数を呼び出している場合、codeigniterは各affected_rows()を実行されたステートメントにどのように関連付けますか?

この質問はcodeigniter固有のものです。

4

1 に答える 1

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がクエリを繰り返すことを意味します。これを機能させるための簡単な回避策は、`$this-を使用して独自のクエリを使用することです。 > db-> query(); '

于 2012-06-26T10:28:32.110 に答える