Mysql
 sql >> база данни >  >> RDS >> Mysql

UPDATE mysql op не работи с cc-номер

Номерът на кредитната карта не е "число" в математическия смисъл, а просто е низ от цифри. Никога не е нужно да питате "какъв е номерът на тази карта плюс едно?" или "...по две?", но може да искате да попитате "кои са първите четири цифри от номера на тази карта?" или "последните четири...?"

Ако го третирате като число, то ще бъде число, много по-голямо от това, с което обикновено работите:44443333322221111 (номер на тестова карта Visa) е „4 квадрилиона 444 трилиона 333 милиарда 322 милиона 221 хиляди 1 сто и 11“.

Важно е, че най-голямото число, което може да бъде съхранено в подписано 32-битово цяло число - което получавате, когато посочите "int" в SQL - е само повече от 2 милиарда, така че номерът на картата не е близо до подходящ. Вашата база данни или ще ви даде грешка, или просто ще съхрани някакъв друг номер, който се вписва - във вашия случай, тя просто съхранява най-голямото число, което може.

Можете да промените колоната си на "bigint" (64-битов знак, максимална стойност около 9 квинтилиона), но е по-добре да ги третирате като низове във вашия PHP и VarChar във вашата база данни.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Има ли еквивалент на `date_default_timezone_set() на PHP, който работи в MySQL?

  2. как да извлека json масив като таблица от текстова колона на mysql, когато броят на json обекти в масива е неизвестен?

  3. Възможно ли е да се извика съхранена процедура в изглед?

  4. PHP Mysql се свързва между бази данни

  5. MYSQL:Обединете две таблици в една, с обединение