2

テーブルを空にしようとしていますが、機能が正しいかどうか疑問に思っていましたか?

モデル:

public function removeQuote()
    {
        $this->db->empty_table('companyDetails,hostingDetails,layoutDetails');
    }

コントローラ:

public function submit()
{
        $data['companyContact'] = $this->quote->getCompanyDetails()->companyContact;

        $this->load->view('submit',$data);

        $this->quote->removeQuote();
}

エラー:

Table '_quote.companyDetails,hostingDetails,layoutDetails' doesn't exist

DELETE FROM `companyDetails,hostingDetails,layoutDetails`
4

3 に答える 3

11
/**
 * Empty Table
 *
 * Compiles a delete string and runs "DELETE FROM table"
 *
 * @param   string  the table to empty
 * @return  object
 */
public function empty_table($table = '')

どうやらあなたはこれを行うことはできません

$this->db->empty_table('companyDetails,hostingDetails,layoutDetails');

代わりに、empty_table3 回呼び出す必要があります。

$this->db->empty_table('companyDetails');
$this->db->empty_table('hostingDetails');
$this->db->empty_table('layoutDetails');

CodeIgniter の DB_active_rec.php ファイルをいつでもハックして、ニーズに合わせることができます。

于 2012-04-09T00:48:49.727 に答える
0

解決策 1

$this->db->truncate('companyDetails');
$this->db->truncate('hostingDetails');
$this->db->truncate('layoutDetails');

解決策 2

 function emptytablesbycomma($stringoftables) {
            $array_tablenames = explode(",", $stringoftables);
            if (!empty($array_tablenames)) {
                foreach ($array_tablenames as $tablename) {
                    $this->db->truncate($tablename);
                }
            }
        }

使用法

$stringoftables='companyDetails,hostingDetails,layoutDetails';
$this->emptytablesbycomma($stringoftables);
于 2019-05-06T19:16:18.367 に答える
0

コントローラーでは、最初にモデルをロードする必要があります(自動ロードされていない場合)

$this->load->model('quote'); // Assuming your model name is 'quote'

次のようにコントローラーで使用したように、そのモデルの関数を使用する前に

$data['companyContact'] = $this->quote->getCompanyDetails()->companyContact;

次の行の後でもすべてのコードが実行された後、最後にビューをロードします

$this->quote->removeQuote();

CIドキュメントにチェックインしただけでempty_tableは、複数のテーブル名は受け入れられません。

于 2012-04-09T00:32:34.073 に答える