Php CodeIgniter上的MySql脚本更新
我很难将MySQL查询放入php Codeigniter。我试着搜索,但还没有找到 代码如下:Php CodeIgniter上的MySql脚本更新,php,mysql,codeigniter,sql-update,alter-table,Php,Mysql,Codeigniter,Sql Update,Alter Table,我很难将MySQL查询放入php Codeigniter。我试着搜索,但还没有找到 代码如下: UPDATE `Pelayanan` SET `TGLBAYAR` = INSERT(`TGLBAYAR`, 3, 0, '/'), INSERT(`TGLBAYAR`, 6, 0, '/') UPDATE `Pelayanan` SET `TGLRUBAH` = INSERT(`TGLRUBAH`, 3, 0, '/'), INSERT(`TGLRUBAH`, 6, 0, '/') ALTER TA
UPDATE `Pelayanan` SET `TGLBAYAR` = INSERT(`TGLBAYAR`, 3, 0, '/'), INSERT(`TGLBAYAR`, 6, 0, '/')
UPDATE `Pelayanan` SET `TGLRUBAH` = INSERT(`TGLRUBAH`, 3, 0, '/'), INSERT(`TGLRUBAH`, 6, 0, '/')
ALTER TABLE `Pelayanan` MODIFY COLUMN (`TGLBAYAR` DATE, `TGLRUBAH` DATE)
UPDATE `Pelayanan` SET `LAMA` = DATEDIFF(`TGLBAYAR`, `TGLRUBAH`)
我想按顺序运行这段代码,但我不知道是使用用例还是其他什么。
controller.php和model.php的代码如何 最重要的是什么
插入(TGLBAYAR
,3,0'/')),插入(TGLBAYAR
,6,0'/'))
你能把它改成字符串吗?如果可以,在您的机型上添加此功能,并从控制器调用该功能
public function update_data(){
$fields = array(
'TGLBAYAR' => "INSERT(`TGLBAYAR`, 3, 0, '/'), INSERT(`TGLBAYAR`, 6, 0, '/')",
'TGLRUBAH' => "INSERT(`TGLRUBAH`, 3, 0, '/'), INSERT(`TGLRUBAH`, 6, 0, '/')"
);
$this->db->update('Pelayanan', $fields, array());
$fields = array(
'TGLBAYAR' => array(
'name' => 'TGLBAYAR',
'type' => 'DATE',
),
'TGLRUBAH' => array(
'name' => 'TGLRUBAH',
'type' => 'DATE',
),
);
$this->db->modify_column('Pelayanan', $fields);
$fields = array(
'LAMA' => "DATEDIFF(`TGLBAYAR`, `TGLRUBAH`)"
);
$this->db->update('Pelayanan', $fields, array());
}
alter table部分应如下所示:
$this->load->dbforge();
$fields = array(
'TGLBAYAR' => array(
'name' => 'TGLBAYAR',
'type' => 'DATE',
),
'TGLRUBAH' => array(
'name' => 'TGLRUBAH',
'type' => 'DATE',
),
);
$this->dbforge->modify_column('Pelayanan', $fields);
此外,如果您有任何错误消息,请与我们共享。无论您的查询是什么,只要将其放入函数$this->db->query中,它将很容易执行,您可以根据需要正确理解它。我在下面为您的mysql查询提供了一个示例:
$query = $this->db->query(" UPDATE `Pelayanan` SET `TGLBAYAR` =
INSERT(`TGLBAYAR`, 3, 0, '/'), INSERT(`TGLBAYAR`, 6, 0, '/')
UPDATE `Pelayanan` SET `TGLRUBAH` = INSERT(`TGLRUBAH`, 3, 0, '/'),
INSERT(`TGLRUBAH`, 6, 0, '/') ALTER TABLE `Pelayanan` MODIFY COLUMN
(`TGLBAYAR` DATE, `TGLRUBAH` DATE) UPDATE `Pelayanan` SET `LAMA` =
DATEDIFF(`TGLBAYAR`, `TGLRUBAH`) ");
上述代码将取代/
为TGLBAYAR
和TGLRUBAH
列。并期待着改变一个表,你可以使用。这将是最佳实践,在您进入实时部署时将更加灵活
$fields = array(
'TGLBAYAR' => array(
'type' => 'DATE',
),
'TGLRUBAH' => array(
'type' => 'DATE',
),
);
$this->dbforge->modify_column('Pelayanan', $fields);
Ref:
然后呢,
$this->db->set('LAMA', "DATEDIFF(`TGLBAYAR`, `TGLRUBAH`)", FALSE);
$this->db->update('Pelayanan');
请尝试此代码,如果出现任何错误,请告诉我。愉快的编码。TGLBAYAR已经在字符串中,我已经运行了此代码,但仍然出现错误:“调用未定义的方法CI\u DB\u mysqli\u driver::modify\u column()”@user1213您使用的是什么CI版本?试着参考一下这个,谢谢。我使用CodeIgniter3.0.0。我想我应该迁移数据库来修复这个错误。我能看看你的控制器@user1213吗?你能再多描述一点吗?这些是有效的查询吗?如果直接在MySQL数据库中运行这些查询,是否会出现任何错误?
$this->db->set('LAMA', "DATEDIFF(`TGLBAYAR`, `TGLRUBAH`)", FALSE);
$this->db->update('Pelayanan');