2014-02-09 44 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