这是我的帖子数据
$post=$this->input->post('input_slide');
在我的$post
变量上方是我签入var_dump($post)
时的字符串数据类型。但是我想转换整数数据类型。所以写了这段代码
$post_int=sprintf("%d",$post);
然后我将会话存储$post_int
变量
//set my session
$this->session->set_userdata('slide_count',$post_int);
//retrive my session
$i=$this->session->userdata('slide_count');
在这里,我的$i
在 mysql 查询中执行整数行为。
但我的问题是为什么
var_dump($i)
仍然显示 STRING 数据类型以及 mysql 如何匹配它。 这是我的 mysql 查询
$sql="
SELECT DISTINCT p.insert_operation,DATE(p.dates) AS pur_date
FROM product_purchases AS p
WHERE DATE(p.dates) BETWEEN
(
SELECT DATE_SUB(date(dates), INTERVAL ? DAY) FROM product_purchases order by product_purchase_id desc limit 1
)
AND
(
SELECT DATE(dates) FORM product_purchases ORDER BY product_purchase_id DESC LIMIT 1
)
GROUP BY pur_date
order BY pur_date DESC
";
$query=$this->db->query($sql,$i);
请注意,当我不使用 sprintf()
时,mysql 显示错误。
sprintf()
总是返回根据格式字符串格式生成的字符串。
删除 sprintf()
语句并将变量转换为int
:
$i = (int) $this->session->userdata('slide_count');
或者,使用 intval()
:
$i = intval( $this->session->userdata('slide_count') );