我正在使用Microsoft SQL Server Management Studio 2014,并且我已经在CI上配置了所有内容,我不知道为什么会发生这种情况,但它真的让我很烦恼。
我有一个存储过程,这就是我将要使用的,例如我的存储过程是:
create procedure [dbo].[set_add_user_i]
@firstname varchar(50),
@lastname varchar(50)
as
begin try
insert into [Users](Firstname,Lastname)
values(@firstname,@lastname)
end try
begin catch
select 'Error' as result;
end catch
然后在我的CI_Model
中 public function set_add_user($param){
$query = $this->db->query("exec set_add_user_i
'".$param["firstname"]."',
'".$param["lastname"]."'
");
return $query->result_array();
}
我使用exec来调用存储过程并从@firstname和@lastname
中输入参数然后在我的CI_Controller
中 public function add_user(){
$data = $this->My_Model->set_add_user( array(
'firstname' => trim($this->input->post('firstname')),
'lastname' => trim($this->input->post('lastname'))
));
echo json_encode($data);
}
这是使用ajax方法从我的视图调用post数据我做了这件事:
AddUsers : function (e,data) {
var $tmp = ( typeof(e) == 'object' ) ? 1 : 2,
$self = AddUser.config;
if($self.txt_add_last_name.val() == ''){
$self.txt_add_last_name.focus();
return false;
}
if($self.txt_add_first_name.val() == ''){
$self.txt_add_first_name.focus();
return false;
}
switch($tmp) {
case 1:
var $data = {
'firstname' : $self.txt_add_first_name.val(),
'lastname' : $self.txt_add_last_name.val()
};
AddUser.CallAjax('add_user', $data, 1);
break;
case 2:
alert('User Successfully Added!');
break;
}
},
CallAjax : function (url, data, type) {
var $self = AddUser.config;
$.ajax({
type: 'POST',
url: url,
data: data,
dataType:'json',
success: function(evt){
console.log(evt);
if(evt){
switch(type){
case 1: AddUser.AddUsers(2,evt); break;
}
}
},
error: function(jqXHR, textStatus, errorThrown){
alert('error: ' + textStatus + ': ' + errorThrown);
}
});
}
第一个函数是事件点击,它将获得控制器方法add_user,数据在$ data变量中,然后将其传递给Callajax函数,我将案例1放在callajax上,(2,evt)将回到案例2:AddUsers函数,但是当我点击它时,它会显示给我
致命错误:在布尔值
上调用成员函数result_array()它有什么问题吗?没有它的原因,它不会进入callajax函数,因为它没有返回值。我需要一些帮助。非常感谢你