CodeIgniter上的MySql脚本更新

问题描述 投票:10回答:2

我很难把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 TABLE `Pelayanan` MODIFY COLUMN (`TGLBAYAR` DATE, `TGLRUBAH` DATE)

UPDATE `Pelayanan` SET `LAMA` = DATEDIFF(`TGLBAYAR`, `TGLRUBAH`)

我想按顺序运行此代码,但我不知道是否使用CASE或其他东西。 controller.php和model.php的代码如何?

php mysql codeigniter sql-update alter-table
2个回答
0
投票

是什么

INSERT(TGLBAYAR,3,0,'/'),INSERT(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());

 }

0
投票

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);

另外,如果您有任何错误消息,请与我们分享。


0
投票

无论您的查询是什么,只需将其放在函数$ 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`) ");
© www.soinside.com 2019 - 2024. All rights reserved.