Сравнение типов данных между MySQL и PHP - PullRequest
0 голосов
/ 05 декабря 2011

Например: у меня есть переменная $ name, и я хочу сохранить ее в своей базе данных в таблицу $ table и имя столбца.Но прежде чем я хочу проверить, что он имеет тот же тип данных, что и столбец базы данных (для varchar, char, text, ... это должна быть строка).

Как я могу это сделать?

Чтобы выбрать тип данных MySQL:

$query = mysql_query("SELECT data_type
               FROM information_schema.columns
               WHERE table_schema = '".$dbName."'
               AND table_name = '".$table."'
               AND column_name = '".$column."' ");

Получение типа PHP:

 gettype($variable);

Но как я могусравнить типы данных (varchar, char, text to string)?

Большое спасибо!

1 Ответ

3 голосов
/ 05 декабря 2011

Это должно быть простой проблемой для обхода массива сопоставления, как в следующем примере кода:

$type_map = array(
    'varchar' => 'string',
    'char' => 'string',
    'text' => 'string',
);

$column_type = 'text'; // get from DB query
$my_var = 'some string';
$var_type = gettype($my_var);

if(array_key_exists($column_type, $type_map) and
   $type_map[$column_type] == $var_type) {
    //proceed with insert of record
}
...