Преобразование строки в тип DECIMAL mySql - PullRequest
1 голос
/ 12 марта 2010

Я пытаюсь вставить данные о цене товара из формы HTML в базу данных MySQL. Поле ввода определяется следующим образом:

<input type="text" name="price" value="0.00"/>

Форма размещена на следующей странице, на которой позаботятся о базе данных. В настоящее время я просто ввожу точное содержимое $ _POST ['price'] в поле базы данных, которое имеет тип DECIMAL (4,2). Я слышал, что это было сохранено как строка, но база данных выдает ошибку всякий раз, когда я пытаюсь это сделать. Есть ли функция PHP для преобразования между строками и типом MySQL DECIMAL? Или мне придется самому форматировать?

1 Ответ

4 голосов
/ 12 марта 2010

Никогда не следует просто " вводить точное содержимое $_POST['...']" в любое поле базы данных: это дверь, открытая для SQL-инъекций.

Вместо этого вы должны убедиться, что данные, вводимые вами в ваши SQL-запросы, действительно действительны в соответствии с ожидаемыми типами данных БД.


Для десятичных чисел решением на стороне PHP было бы использование функции floatval:

$clean_price = floatval($_POST['price']);
$query = "insert into your_table (price, ...) values ($clean_price, ...)"
if (mysql_query($query)) {
    // success
} else {
    echo mysql_error();   // To help, while testing
}

Обратите внимание, что я не заключил в кавычки значение; -)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...