2012-01-25 3 views
0

У меня есть PHP скрипт, который выглядит следующим образом:MongoDB - PHP - Вставить как номер

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


    $collection->insert($contacts); 

так это работает хорошо, но я все эти значения собираются в моей коллекции, как «fistname», «фамилия» и «возраст» с котировками вокруг всех. Я хочу, чтобы цитаты вокруг имени и фамилии, но я хочу, чтобы поле возраста вставлялось как число/целое число, а не строка с кавычками. Как я могу убедиться, что поле возраста и другие числовые поля входят в mongodb/collection как число?

Я думал что-то вроде: integer -> $ _POST ["{$ age}"], но я уверен, что это неправильно. Снова я использую PHP, а не оболочку. 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). Теперь моя проблема в том, что я хочу сохранить десятичное число и числа после decmal, но (int) зачищает все после десятичной. Какую функцию я бы использовал, чтобы сохранить десятичное число и число после десятичного числа. Благодарю. – user982853

0

Простой, напечатанный в целое, а затем сделать вставку:

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

Я пробовал ваше предложение, и хотя я не получаю никаких ошибок страницы, он все равно вставляется как строка. Любые другие предложения? благодаря – user982853

Смежные вопросы