Господа, доброго времени суток. Столкнулся с такой проблемой: если в запросе к базе есть буквенный символ - MySQL режет его и читает только цифры, соответственно, корректный запрос не проходит. Код (Text): $quered2 = mysqli_query($DB, "UPDATE `item_list` SET `QUANTITY` = `QUANTITY` - '".$_POST["quantity"]."' WHERE `ART` = ".$_POST["consumable"]); Здесь из поля с количеством, по логике, вычитается заданное количество. Если $_POST["consumable"] имеет в теле только цифры - запрос проходит, если же нет - уходит в молоко. Поле в колонке `ART` имеет тип varchar(20), то есть вроде бы ничто не должно мешать. Где-то читал, что у MySQL есть такая фишка - если мускул видит в запросе арифметический знак, то воспринимает аргументы как цифры и игнорирует прочие символы, но я не знаю, как это соотносится к данному случаю. Какие могут быть обходные пути?
@feelz, просто число - это число. А строку (строковую константу) для mysql надо оборачивать в кавычки (одинарные... то есть - в апострофы ).
вы внешние данные непосредственно заливаете в бд, без экранирования. Про sql-injection читали ? для безопасности используйте https://php.net/manual/ru/mysqli.prepare.php Но, если вам не удобно будет каждый раз прописывать многословность каждой функций, то порекомендую свою разработку(обвертку всего ада) https://github.com/MouseZver/Lerma