2012-01-25 63 views
0

我有一個PHP腳本,看起來像這樣:的MongoDB - PHP - 插入爲數字

$contacts["{$firstname}"] = $_POST["{$firstname}"] ; 
$contacts["{$lastname}"] = $_POST["{$lastname}"] ; 
$contacts["{$age}"] = $_POST["{$age}"] ; 


    $collection->insert($contacts); 

所以這個工作正常,但我所有的這些值都進入我的收藏爲「fistname」,「姓氏」和「年齡」都帶有引號。我想要名字和姓氏周圍的引號,但我希望年齡字段作爲數字/整數插入而不是引用的字符串。我如何確保年齡字段和其他數字字段作爲數字進入MongoDB /集合?

我在想像這樣:integer - > $ _POST [「{$ age}」]但我確定這是不正確的。再次使用PHP而不是shell。 Thnaks。

謝謝你的幫助。

+1

你怎麼能確認的任何字符串'$ firstname'家店是$ _ POST可用?使用http://php.net/manual/en/function.isset.php來檢查。 –

回答

3

首先,你不需要所有的引號和大括號。其次,儘量值轉換成一int

$contacts = array(
    $firstname => $_POST[$firstname], 
    $lastname => $_POST[$lastname], 
    $age  => (int) $_POST[$age] 
); 

我假設在這裏,所有的$_POST瓦爾已檢查和驗證,並$firstname$lastname$age

+0

我嘗試了你的建議,雖然我沒有收到任何頁面錯誤,但仍然以「」字符串的形式插入。還有其他建議嗎?謝謝。 – user982853

+0

哎呀,這確實奏效。我的代碼中有一個錯誤。一旦我解決了錯誤(int)完美工作。謝謝。 – user982853

+0

你知道這些函數是否有一個備忘單,如(int)。現在我的問題是我想保留十進制數和decimal後的數字,但(整數)是剝離小數點後的所有內容。我將使用什麼函數來保留小數點以及小數點後的數字。謝謝。 – user982853

0

簡單,的類型轉換成整數,然後做插件:

$contacts["{$age}"] = intval($_POST["{$age}"]) ; 
$collection->insert($contacts); 
+0

我試過你的建議,雖然我沒有收到任何頁面錯誤,但它仍然插入爲「」字符串。還有其他建議嗎?謝謝 – user982853