1

行。我们可以像这样在 Codeigniter 中调用 MySQL 过程:

$buf = array('something', NULL); //array of vars
$this->db->query("CALL some_proc(?, ?)", $buf); //calling stored procedure

但是如果我有巨大的数组(25-30 项),有没有更流畅的方法来使用数组调用 MySQL 例程?比 $this->db->query("CALL some_proc(?, ?, ?, ? ..."); 更好的东西提前致谢!

4

2 回答 2

3

好吧...您可以$this->db->escape()在它们之前解析字符串。

$arr_cols = array('value_1', 'value_2', 'value_3');
foreach(array_keys($arr_cols) as $h)
    $arr_cols[$h] = $this->db->escape($arr_cols[$h]);

$str_cols = implode(', ', $arr_cols);

$this->db->query("CALL some_proc({$str_cols})");
于 2012-05-11T10:38:33.933 回答
2

只需使用str_repeat()

$this->db->query("CALL some_proc(?" . str_repeat(",?", count($buf)-1) . ")", $buf);
于 2012-05-11T10:40:21.823 回答