整数添加奇怪的结果

时间:2014-10-13 03:49:02

标签: php mysql sql codeigniter integer

我从表中选择一个整数值,然后尝试将其递增1,但结果是其他的。

 TABLE
 id            index  -> BIG INT(20)
 ---------- ----------
 1           191000000000003

<?php 
    $sql='SELECT index from table where id='1'';
    $q=$this->db->query($sql);
    $r=$q->row->array();
    $index= $r['index'];
    $id=$index+1;
    echo $id;    // returns 1.91E+14 
    echo $index; // returns 191000000000003 

    $id=(int)$transfer_index+1;
    var_dump($id); // returns (float) 2147483648
    var_dump($transfer_index); // returns string

  expected result: 191000000000004
?>

2 个答案:

答案 0 :(得分:0)

试试这个:

$sql="SELECT (index + 1) as ind from table where id='1'";
$q=$this->db->query($sql);
$index=$q->row()->ind;
echo $index;

答案 1 :(得分:0)

计算机上的最大整数值小于存储在BIG_INT字段中的值。