2014-02-09 30 views
0

我正面临有线问题!PHP/MYSQLI - BIGINT值更改为负数

我有一个叫“学生”与类型BIGINT, 之一cloumn stuID表,当我尝试像“20122222222”这列分配一个值, 如果我做手工它做工精细!但我的代码也变更为负值 我搜索在计算器的类似的问题,我找到了答案bind_param改为串像

$stmt->bind_param('s',$stuID);

我做到了,还是同样的问题

这里的功能

public function insertStudent($stuID) 
{ 
    if($stmt = $this->mysqli->prepare("INSERT INTO student(stuID) VALUES(?)")) 
    { 
     $stmt->bind_param('s',$stuID); 
     $stmt->execute(); 
     $stmt->close(); 
    } 
    else 
    { 
     die(printf("Prepared Statement Error: %s\n", $this->mysqli->error)); 
    } 
} 

谢谢大家

+0

是列类型BIGINT UNSIGNED? – Matteo

+0

'CREATE TABLE IF NOT EXISTS学生( stuID BIGINT(20)NOT NULL, PRIMARY KEY(stuID) )ENGINE = InnoDB的默认字符集= LATIN1;' 这里的表 – user2751638

+0

你为什么要绑定一个字符串'bind_param(” S',$ stuID);'? –

回答

0

如果你想插入一条记录。改为使用rand(111,999)。你会得到一个独特的随机数从111到999. php rand()

希望它有帮助。

+0

事情是我与已经存在的学生身份证一起工作。 如果我创建另一列并将其命名为id并将stuID从BIGINT更改为VARCHAR或其他类型,则浪费存储空间。 – user2751638

+0

尝试在进入数据库之前先回显出该ID。所以你可以弄清楚什么是错误。像做一个尝试捕捉,检查代码的每一行。 – yul757

+0

yul757,是的,我试过了,在我的问题下阅读我的评论。我解决了这个问题。 – user2751638