Mongodb-PHP-以数字形式插入


Mongodb - PHP - Insert as number

我有一个php脚本,看起来像这样:

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

    $collection->insert($contacts);

所以这很好,但我所有这些值都以"fistname"、"lastname"answers"age"的形式进入我的收藏,并在所有这些值周围加上引号。我希望名字和姓氏两边加引号,但我希望年龄字段插入为数字/整数,而不是带引号的字符串。如何确保年龄字段和其他数字字段作为数字进入mongodb/集合?

我想的是:integer->$_POST["{$age}"],但我确信这是不对的。我再次使用PHP而不是shell。Thnaks。

谢谢你的帮助。

首先,您不需要所有的引号和大括号。其次,尝试将值强制转换为int

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

我在这里假设所有的$_POST变量都已检查和验证,并且$firstname$lastname$age都是有效的数组关键字字符串

Simple,将类型转换为integer,然后执行插入操作:

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

您可以使用http://php.net/manual/en/function.intval.php将字符串转换为整数。