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

Проверете типа променлива на PHP спрямо тип данни на MYSQL

Ако данните идват от CSV файл, трябва да запомните, че всички стойности ще бъдат низове (дори числовите низове все още имат тип низ).

Така че не можете да използвате is_int() /is_float() /etc., защото това ви казва само за типа или променливата. Можете да използвате is_numeric() за да проверите стойността, но това ще позволи неща като експоненциална нотация като "+0123.45e6". Понякога ctype_digit() може да бъде полезно за тестване на цели числа поради тази причина, тъй като ще позволи само числата 0-9 да присъстват в низ, за ​​да върне вярно.

Регулярните изрази също могат да се използват за идентифициране на типове данни, базирани на шаблони, но трябва да следите за производителност, когато работите с големи набори от данни. Почти винаги е препоръчително от гледна точка на производителността да използвате preg_ семейство от функции вместо ereg функции.

Ако валидирате неща като типове ENUM или SET, вероятно ще трябва да направите масив, съдържащ легални стойности (или да ги извлечете със заявка) и след това да проверите стойността спрямо тях с in_array() .

За полета CHAR/VARCHAR можете да анализирате дефиницията на колона и след това да проверите дали дължината на стойността попада в рамките на ограниченията.

Ако типът NULL е разрешен за някоя от колоните ви, трябва също да проверите това (и вероятно да картографирате празни стойности или низа „NULL“ към действителна стойност NULL).

Ако искате наистина да избегнете тези стойности правилно, разгледайте използването на подготвени изрази и разширението PDO (PHP Data Objects). Това позволява на MySQL правилно да избягва данните въз основа на типа. (Можете също да използвате подготвени изрази с MySQLi.)

Ако търсите конкретни типове данни и как да ги идентифицирате, тогава може да искате да редактирате въпроса си, за да улесните по-пълните отговори.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. CakePHP:сайтът не се отваря на уеб сървъра Проблемът с МИГРАЦИЯТА работи добре на localhost

  2. Mysql - 1045 - Достъпът е отказан за потребител 'user'@'localhost' (с помощта на парола:Да)

  3. mysqli db архивиране с php

  4. MySql:Изберете елементи, които имат всички стойности

  5. Как да използвам REGEXP с escape последователности като граница на думите?