1

我很抱歉提出一个更广泛的问题,然后最喜欢,但我在整个互联网上找不到任何帮助。我正在一个我不负责数据库的站点上工作(是的,它非常有问题),我被告知使用存储过程将数据插入表中。

查询正在运行。它将数据插入表中,但其他东西正在触发错误。

我的问题是:这段代码中是否有任何东西会触发该错误,或​​者它是否在存储过程中?我能做些什么来测试它?有什么建议吗?我无法弄清楚错误号 : 0 实际上是什么。

我正在使用 codeigniter 框架。这是代码:

 public function addScopeContent () {
    $cn = '%';
    $gp = $this->input->post('group');
    $co = $this->input->post('company');
    $ci = $this->input->post('city');
    $dp = '%';

    if ($gp == 'BU000') {
        $gp = '%';
    }
    if ($co == 'CO000') {
        $co = '%';
    }
    if ($ci == 'CI000') {
        $ci = '%';
    }

    $location = $cn .'-'. $gp .'-'. $co .'-'. $ci .'-'. $dp;

    $query = $this->db->query('call rollout_systems_multiimport('. $this->session->userdata('scopeId') .', "'. $location .'")');
    if ($query) {
        redirect('discovery/addContent');
    }
}

这是存储过程:

  CREATE DEFINER=`root`@`localhost` PROCEDURE `rollout_systems_multiimport`(
  var_scope_id varchar(250),
  var_searchString varchar(250))
  BEGIN

  Insert into rollout_systems
  (`sys_name`, `sys_serial`, `eam_model`, `EOL_date`, `eam_user`, `scope_id`)
  select `ad_name`,`eam_Serial_Number`,`eam_Model`,`Model_EOL`,`ad_account`,var_scope_id
  from `disc_userpool` inner join `disc_systempool`
  on `ad_account` = `user_aurora_id`
  Where `disc_userpool`.`location_code` like var_searchString;

注意:我刚刚尝试将 database.php 页面中的 dbdriver 从 mysqli 更改为 mysql。它不再给出错误。

4

1 回答 1

4

好像是codeigniter mysql驱动的bug,用方法试试simple_query

于 2012-09-18T15:03:20.553 回答