Php 在会话中存储数据时如何从post方法生成整数数据类型

Php 在会话中存储数据时如何从post方法生成整数数据类型,php,mysql,codeigniter,Php,Mysql,Codeigniter,这是我的帖子资料 $post=$this->input->post('input_slide'); 在我签入var\u dump($post)时,我的$post变量上方是一个字符串数据类型。但我想转换整数数据类型。所以我写了这段代码 $post_int=sprintf("%d",$post); 然后我存储session$post\u int变量 //set my session $this->session->set_userdata('slide_c

这是我的帖子资料

$post=$this->input->post('input_slide');
在我签入
var\u dump($post)
时,我的
$post
变量上方是一个字符串数据类型。但我想转换整数数据类型。所以我写了这段代码

$post_int=sprintf("%d",$post);
然后我存储session
$post\u int
变量

    //set my session
    $this->session->set_userdata('slide_count',$post_int);  
    //retrive my session
    $i=$this->session->userdata('slide_count');
这里我的
$i
在mysql查询中执行整数行为

但我的问题是为什么
var\u dump($i)
仍然显示字符串数据类型,以及mysql如何匹配它。 这里是我的mysql查询

请注意,当我不使用
sprintf()

时,mysql会显示错误。始终使用根据格式化字符串格式生成的字符串

删除
sprintf()
语句,并将变量转换为
int

$i = (int) $this->session->userdata('slide_count');
或使用:


sprintf返回一个字符串。。。您的MySQL可能在抛出什么错误之后?因为
间隔“1”天
间隔1天
有效。您可能正在发布其他整数,这就是为什么没有
sprintf()
,它就不能工作的原因。谢谢。但我的第二个问题是,为什么mysql支持这个字符串?@imran:参见上面的Glavić。
$i = (int) $this->session->userdata('slide_count');
$i = intval( $this->session->userdata('slide_count') );