0

これは私の投稿データです

$post=$this->input->post('input_slide');

$postチェックインすると、変数の上に文字列データ型がありますvar_dump($post)。しかし、INTEGERデータ型を変換したいです。だからこのコードを書いた

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

使用しない場合、mysql はエラーを表示することに注意してくださいsprintf()

4

1 に答える 1

2

sprintf()フォーマット文字列 format に従って生成された文字列を常に返します。

sprintf()ステートメントを削除し、変数を次のようにキャストしますint

$i = (int) $this->session->userdata('slide_count');

または、次を使用しますintval()

$i = intval( $this->session->userdata('slide_count') );
于 2013-10-12T05:47:56.063 に答える