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') );