mysqli查询成功但给出错误号0

时间:2012-09-17 20:09:33

标签: php mysql database codeigniter stored-procedures

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

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

我的问题是:此代码中是否有任何内容会触发该错误,或​​者它是否存储在过程中?我该怎么做才能测试呢?有什么建议吗?我无法弄清楚错误号: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。它不再出错了。

1 个答案:

答案 0 :(得分:4)

似乎是codeigniter mysql driver bug,尝试使用simple_query方法。