sql >> データベース >  >> RDS >> Mysql

PHP変数タイプをMYSQLデータ型と照合します

    データがCSVファイルからのものである場合は、すべての値が文字列になることを覚えておく必要があります(数値文字列でも文字列タイプがあります)。

    したがって、is_int()は使用できません / is_float() /etc。、それはタイプについてのみ教えてくれるからです または変数。 is_numeric()を使用できます 値をチェックしますが、これにより「+0123.45e6」のような指数表記などが可能になります。時々ctype_digit() この理由で整数をテストするのに役立ちます。これは、0〜9の数字のみが文字列に存在して、trueを返すことができるためです。

    正規表現を使用してパターンベースのデータ型を識別することもできますが、大きなデータセットを処理する場合はパフォーマンスのオーバーヘッドに注意する必要があります。ほとんどの場合、パフォーマンスの観点から、preg_を使用することをお勧めします。 eregの代わりに関数ファミリー 関数。

    ENUMやSET型などを検証する場合は、有効な値を含む配列を作成し(またはクエリでこれらを抽出し)、in_array()を使用して値を確認する必要があります。 。

    CHAR / VARCHARフィールドの場合、列定義を解析してから、値の長さが制約内にあるかどうかを確認できます。

    いずれかの列でNULLタイプが許可されている場合は、これに対してもチェックする必要があります(おそらく、空の値または文字列「NULL」を実際のNULL値にマップします)。

    これらの値を実際に適切にエスケープしたい場合は、プリペアドステートメントとPDO(PHPデータオブジェクト)拡張機能の使用を検討してください。これにより、MySQLはタイプに基づいてデータを適切にエスケープできます。 (MySQLiでプリペアドステートメントを使用することもできます。)

    特定のデータ型とそれらを識別する方法を探している場合は、質問を編集して、より完全な回答を容易にすることをお勧めします。




    1. MySQL-レコードの行番号を選択します

    2. 特別な文字を使用してJSONでエンコードされた値をmySQLに挿入すると失敗します

    3. 値のリスト(興味など)を保存する

    4. Oracleは24時間以上表示します