如果我运行这个模型程序没有存储过程调用意味着工作正常。但是如果我调用存储过程意味着抛出错误。请帮助我,我认为在调用存储过程时表示表名的方式是错误的。
模型
<?php if (!defined('BASEPATH')) exit('No direct script access allowed');
class Members_model extends CI_Model
{
function select_members()
{
$query = $this->db->get('users'); //Table Name
$query = $this->db->query("CALL get_members()");// calling stored procedure
return $query->result_array();
}
}
?>
注意:抛出错误 发生数据库错误
Error Number: 2014
Commands out of sync; you can't run this command now
UPDATE `users` SET `username` = 'ThottiJaya', `password` = '28bf' WHERE `id` = 127
Filename: C:\xampp\htdocs\system\database\DB_driver.php
Line Number: 330
答案 0 :(得分:1)
根据MySQL:
C.5.2.14。命令不同步 如果你的命令不同步;您现在无法在客户端代码中运行此命令,您是&gt;以错误的顺序调用客户端函数。
例如,如果您使用mysql_use_result()并尝试在调用mysql_free_result()之前执行新查询,则会发生这种情况。如果您尝试执行两个返回数据的查询而不在其间调用mysql_use_result()或mysql_store_result(),也会发生这种情况。
我假设在调用update
之前,您已经打开了一些结果集但尚未使用。因此是错误。如果您与结果无关,那么您应该拨打mysql_free_result()
,然后进行update
电话。
请参阅 :MySQL: Commands out of sync
请参阅类似帖子 :
SO: Why I am getting the Error “Commands out of sync; you can't run this command now”
还有一种情况需要将mysql驱动程序更改为mysqli
。
请参阅类似帖子 :
SO: MySQL Error - Commands out of sync; you can't run this command now
希望这有帮助。
答案 1 :(得分:0)
尝试从以下位置更改配置中的数据库驱动程序:
$ db ['default'] ['dbdriver'] ='mysql';
到
$ db ['default'] ['dbdriver'] ='mysqli';