使用 Codeigniter 执行多个 sql 语句
Executing muliple sql statements with Codeigniter
所以事实证明,Codeigniter 很难一次执行超过 1 个 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?
这个错误简单点你。
A table must have at least 1 column
所以创建Query应该是这样的。 (给出您将存储数据的所有 table 列名称)
SQL 创建 TABLE 语法
CREATE TABLE table_name
(
column_name1 data_type(size),
column_name2 data_type(size),
column_name3 data_type(size),
....
);
例子
CREATE TABLE Persons
(
PersonID int,
LastName varchar(255),
FirstName varchar(255),
Address varchar(255),
City varchar(255)
);
我找到了解决这个问题的方法:
$this->db->trans_start();
$this->db->query( 'CREATE TEMPORARY TABLE tmptable_1 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();
通过合并原来的前两行,数据库根据您要从中复制的 table 的结构构建 table 列。
所以事实证明,Codeigniter 很难一次执行超过 1 个 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?
这个错误简单点你。
A table must have at least 1 column
所以创建Query应该是这样的。 (给出您将存储数据的所有 table 列名称)
SQL 创建 TABLE 语法
CREATE TABLE table_name
(
column_name1 data_type(size),
column_name2 data_type(size),
column_name3 data_type(size),
....
);
例子
CREATE TABLE Persons
(
PersonID int,
LastName varchar(255),
FirstName varchar(255),
Address varchar(255),
City varchar(255)
);
我找到了解决这个问题的方法:
$this->db->trans_start();
$this->db->query( 'CREATE TEMPORARY TABLE tmptable_1 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();
通过合并原来的前两行,数据库根据您要从中复制的 table 的结构构建 table 列。