2014-03-18 59 views
1

所以我有這個疑問:PHP的mysqli插入查詢不是最後插入值

$query = $connection->prepare("INSERT INTO userdata(Username, Name, Department, Access, Password) VALUES (? , ? , ? , ? , ?)"); 
    $query->bind_param('sssdi', $accname, $name, $department, $access, $accpass); 
    $query->execute(); 
    $query->close(); 

的變量是:

$accname = 'js1234'; 
    $name = 'Joe Smith'; 
    $department = 'New'; 
    $access = '0'; 
    $accpass = md5('joe1234'); 

MYSQL結構是:

Column  Type   Null Default 
    ID  int(11)  No  
    Username varchar(6) Yes  NULL  
    Name  varchar(50) Yes  NULL  
    Department varchar(15) Yes  NULL  
    Access  int(11) Yes  NULL  
    Password varchar(32) No  

但是,當我運行php代碼,它只將數字63插入到數據庫的密碼列中,而不是完整的md5哈希值。其他一切都很好。我在PHP查詢中缺少什麼?

+1

一個MD5哈希密碼是接近純文本,你可以得到 – 2014-03-18 21:32:12

+0

'MD'代表「醫生」,在這種情況下OP,一旦OP的DB被擊中就可能需要一個。 @Dagon ;-) –

回答

3

的問題是因爲你試圖插入一個字符串作爲一個整數,您需要將您的密碼哈希爲一個字符串

$query->bind_param('sssds', $accname, $name, $department, $access, $accpass); 
         //^ note the "s" here for string instead of "i" that you used 
+0

非常感謝,這工作。我試着谷歌,看看是不是'sssdi'有,但找不到任何東西。 – NickC217

+0

歡迎你 – Fabio