天天看點

codeigniter mysql 存儲過程,從Codeigniter調用存儲過程

codeigniter mysql 存儲過程,從Codeigniter調用存儲過程

I am using codeigniter that has mysqli as db driver, am trying to call a simple stored procedure from my model but get an error. What am i doing wrong

Error Number: 1064

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'pc()' at line 1

pc()

Filename: C:\hosted\saner.gy\ipa\system\database\DB_driver.php

Line Number: 330

When i run the query call Stored Procedure it runs well but from codeigniter it throws the above error

Stored Procedure

CREATE DEFINER=`root`@`localhost` PROCEDURE `pc`()

LANGUAGE SQL

NOT DETERMINISTIC

CONTAINS SQL

SQL SECURITY DEFINER

COMMENT ''

BEGIN

SELECT * FROM tbl_flo

WHERE name = 'sam';

END

Controller

public function sp()

{

$this->User_model->pc();

}

Model

public function pc()

{

$query = $this->db->query("pc()");

return $query->result();

}

解決方案

Stored procedures are invoked using the CALL procedure_name(optional_params) query.

You need to edit the query used in your model like this:

public function pc()

{

$query = $this->db->query("CALL pc()");

return $query->result();

}