Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Verifique o tipo de variável PHP em relação a um tipo de dados MYSQL


Se os dados forem provenientes de um arquivo CSV, lembre-se de que todos os valores serão strings (mesmo strings numéricas ainda têm um tipo de string).

Então você não pode usar is_int() /is_float() /etc., porque isso apenas informa sobre o tipo ou a variável. Você pode usar is_numeric() para verificar o valor, mas isso permitirá coisas como notação exponencial como "+0123.45e6". Às vezes ctype_digit() pode ser útil para testar inteiros por esse motivo, pois só permitirá que os números de 0 a 9 estejam presentes em uma string para que ela retorne true.

Expressões regulares também podem ser usadas para identificar tipos de dados baseados em padrões, mas você precisa observar a sobrecarga de desempenho ao lidar com grandes conjuntos de dados. É quase sempre aconselhável, do ponto de vista do desempenho, usar o preg_ família de funções em vez do ereg funções.

Se você estiver validando coisas como tipos ENUM ou SET, provavelmente precisará criar uma matriz contendo valores válidos (ou extraí-los com uma consulta) e verificar o valor com in_array() .

Para campos CHAR/VARCHAR, você pode analisar a definição da coluna e verificar se o comprimento do valor está dentro das restrições.

Se o tipo NULL for permitido em qualquer uma de suas colunas, você também precisará verificar isso (e provavelmente mapear valores vazios ou a string "NULL" para um valor NULL real).

Se você deseja realmente escapar desses valores corretamente, verifique o uso de instruções preparadas e a extensão PDO (PHP Data Objects). Isso permite que o MySQL escape adequadamente dos dados com base no tipo. (Você também pode usar instruções preparadas com MySQLi.)

Se você estiver procurando por tipos de dados específicos e como identificá-los, convém editar sua pergunta para facilitar respostas mais completas.