Intereting Posts
Лучший способ загрузить php-классы в EC2 – InstanceStore, EBS или S3? Выполнить php-файл с другого php Почему скрипт php может остановиться? Работа с сервером PHP и сервером MySQL в разных часовых поясах Ошибка анализа: синтаксическая ошибка, неожиданный '}' Почему мой php-код не подключается к моей удаленной базе данных MySql? CodeIgniter – вызов функции-члена select () для не-объекта Получение ошибки mysqli :: real_connect (): (HY000 / 2002): нет такого файла или каталога, когда я пытаюсь получить доступ к моему проекту на реальном сервере Разбирайте PHP-код для извлечения имен функций? Способ получения всех алфавитных символов в массиве в PHP? Как обрабатывать электронные письма в реальном времени по мере их поступления Mysqli_query () ожидает, что параметр 1 является mysqli, null задан? Смешение? Как разделить значение ключевого слова массива, разделенное запятыми в PHP? PHP Dynamic включает в себя текущий путь к файлу Какое использование лямбда в PHP?

PDO :: PARAM для типа decimal?

У меня есть 2 поля базы данных

`decval` decimal(5,2) `intval` int(3) 

У меня есть 2 запроса pdo, которые их обновляют. Тот, который обновляет int, работает нормально

 $update_intval->bindParam(':intval', $intval, PDO::PARAM_INT); 

но я не могу обновить десятичное поле. Я пробовал 3 пути ниже, но ничего не работает

 $update_decval->bindParam(':decval', $decval, PDO::PARAM_STR); $update_decval->bindParam(':decval', $decval, PDO::PARAM_INT); $update_decval->bindParam(':decval', $decval); 

Кажется, проблема в том, что тип базы данных decimal ? Существует ли PDO::PARAM для поля типа decimal ? Если нет, что я использую в качестве обходного пути?

Solutions Collecting From Web of "PDO :: PARAM для типа decimal?"

Нет PDO::PARAM для десятичных / поплавков, вам придется использовать PDO::PARAM_STR .

Я узнал, что ищет способ хранения DOULBE с использованием PDO, что если вы не предоставите третий аргумент (например, PDO :: PARAM_ *), он использует магию и правильно сохраняет номер. Так что, возможно, если вы только что покинули PDO, чтобы беспокоиться о типе параметра и весело привязывать: decval к ​​$ decval и переходить к следующей задаче :-))

UP должен использовать тот же PDO :: PARAM_STR и отмечая, что если столбец в базе данных имеет тип NUMERIC (M, D) или десятичный (M, D), следует заметить, что M – это число символов, должно быть общее количество символов, которые вы можете ввести, и D количество знаков после запятой. В примере NUMERIC (10,2) у нас есть 8 домов с точками точности и двумя знаками после запятой. Таким образом, у нас есть 10 символов, всего 2 зарезервированных для десятичных знаков.

Я нашел решение, отправлю десятичный параметр, такой как PDO :: PARAM_STR, в процедуре хранения сервера sql получите его как десятичный (int, dec)

PHP

 $stmt_e->bindParam(':valor_escala_desde', $valor_escala_desde, PDO::PARAM_STR); 

SQL SERVER, STORE PROCEDURE:

 @valor_escala_desde decimal(18,2), 

и делается.