因此,Codeigniter一次只能执行一个以上的SQL语句。使用Codeigniter执行多语句SQL语句
一路上这是使用trans_start
和trans_complete
函数,但是,这不适用于创建临时表。
$this->db->trans_start();
$this->db->query('CREATE TEMPORARY TABLE tmptable_1;');
$this->db->query('SELECT * FROM banner_data WHERE id = '.$id.';');
$this->db->query('UPDATE tmptable_1 SET id = NULL;');
$this->db->query('INSERT INTO banner_data SELECT * FROM tmptable_1;');
$this->db->query('DROP TEMPORARY TABLE IF EXISTS tmptable_1;');
$this->db->trans_complete();
上面的代码生成以下错误:
A table must have at least 1 column
CREATE TEMPORARY TABLE tmptable_1;
Filename: models/Banners_generator_model.php
是否有一个去执行SQL的一个整块的方法吗?
但我的回答是更好的答案(恕我直言)。我已经完全测试过它,它可以工作。 – richelliot