Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Porównaj typ zmiennej PHP z typem danych MYSQL

Jeśli dane pochodzą z pliku CSV, musisz pamiętać, że wszystkie wartości będą ciągami (nawet ciągi numeryczne nadal mają typ ciągu).

Więc nie możesz użyć is_int() /is_float() /itd., ponieważ mówi tylko o typie lub zmienna. Możesz użyć is_numeric() aby sprawdzić wartość, ale pozwoli to na takie rzeczy, jak notacja wykładnicza, np. „+0123.45e6”. Czasami ctype_digit() z tego powodu może być przydatne do testowania liczb całkowitych, ponieważ pozwoli na obecność w ciągu tylko liczb od 0 do 9, aby zwrócić prawdę.

Wyrażenia regularne mogą być również używane do identyfikowania typów danych opartych na wzorcach, ale w przypadku dużych zestawów danych należy zwracać uwagę na obciążenie wydajnościowe. Z perspektywy wydajności prawie zawsze zaleca się użycie preg_ rodzina funkcji zamiast ereg funkcje.

Jeśli walidujesz rzeczy takie jak typy ENUM lub SET, prawdopodobnie będziesz musiał utworzyć tablicę zawierającą dopuszczalne wartości (lub wyodrębnić je za pomocą zapytania), a następnie porównać z nimi wartość za pomocą in_array() .

W przypadku pól CHAR/VARCHAR można przeanalizować definicję kolumny, a następnie sprawdzić, czy długość wartości mieści się w granicach.

Jeśli typ NULL jest dozwolony w dowolnej z twoich kolumn, musisz również sprawdzić to (i prawdopodobnie mapować puste wartości lub ciąg "NULL" na rzeczywistą wartość NULL).

Jeśli chcesz właściwie uciec od tych wartości, zapoznaj się z użyciem przygotowanych instrukcji i rozszerzenia PDO (PHP Data Objects). Pozwala to MySQL na prawidłowe ucieczkę danych na podstawie typu. (Możesz również użyć przygotowanych instrukcji z MySQLi.)

Jeśli szukasz konkretnych typów danych i sposobu ich identyfikacji, możesz edytować swoje pytanie, aby uzyskać pełniejsze odpowiedzi.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. PHP/Mysql Kolejność według i Rand()

  2. Jak zamodelować trójstronną relację w mikroserwisie JPA Spring Boot z zapleczem MySQL?

  3. Nielegalna mieszanka zestawień dla operacji „jak” podczas wyszukiwania za pomocą Ignited-Datatables

  4. Nie można określić tabeli docelowej „NAME” do aktualizacji w klauzuli FROM

  5. Pomoc dotycząca aktualizacji stronicowania PHP i MySQL