2013-12-03 3 views
2

Это довольно простой вопрос, если честно. Я искал какое-то время в Google для решения, но ничего не работает. У меня есть следующие поля в моей базе данных:Вставка PHP float/decimal значений в MySQL

decimal(2,1) 

У меня есть две переменные в PHP (которые поступают от значений, вставленных в форму через POST) Я хочу, чтобы сложить вместе, а затем вставить в это поле.

$sql2 = $link->prepare("INSERT INTO league_stats (match_id, rating) 
VALUES (?, ?)"); 
$sql->bind_param("ii", $match_id, $rating); 

$match_id = $_SESSION["match_id"]; 
$rtg1 = $_POST[$rating_1"]; 
$rtg2 = $_POST[$rating_2"]/10; 
$rating = $rtg1 + $rtg2; 

Например, rtg1 будет и rtg2 будет 3 делится на 10, так что выходит как 0,3. Затем я добавляю эти два числа вместе, чтобы сделать 7.3. Когда я перехожу, чтобы вставить его в базу данных, он всегда отображает вторую цифру как 0. Таким образом, вместо 7.3 это получится как 7.0. Я пробовал много разных методов, но всегда получаю тот же результат.

Я даже назначен $ рейтинг исходного значения просто проверить, если что-то не так с моими переменными:

$rating = 7.5 

Тем не менее выходит как 7.0.

Может ли кто-нибудь указать пример правильной вставки PHP-переменной типа float в MySQL? А также, может быть, объясните, как правильно добавить два значения float? Благодаря!

+0

убедитесь, что тип данных в MySQL для этого поля всплывают –

+1

вы рассказываете свою библиотеку DB вы вставив Int. Поэтому, если вы переходите в '7.5', библиотека db была TOLD, она должна быть усечена до' 7', потому что она должна быть int. –

+0

Я не понимаю, вы привязываетесь перед заданными значениями: $ sql-> bind_param ("ii", $ match_id, $ rating) ;, $ match_id = $ _SESSION ["match_id"]; $ rtg1 = $ _POST [$ rating_1 "]; $ rtg2 = $ _POST [$ rating_2"]/10; $ rating = $ rtg1 + $ rtg2; – jacouh

ответ

5

Вы указываете php, чтобы отличать $match_id и $rating с целым числом. Вы должны использовать:

$sql->bind_param("id", $match_id, $rating); 

вместо

$sql->bind_param("ii", ... 
+0

Ahh спасибо! Я на самом деле попытался изменить его на «d» вместо «i» раньше, но я внес другие изменения в код, который не заставлял его работать. Я вернул эти изменения в код, который у меня был выше, и изменил его на «d», и теперь он отлично работает. :) –

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