2011-12-05 55 views
0

例如: 我有变量$ name,并且我喜欢将它保存到我的数据库中以表$ table和column name。但在我想知道它具有与数据库列相同的数据类型(对于varchar,char,text,...它必须是字符串)之前。比较MySQL和PHP之间的数据类型

我该怎么做?

要选择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,字符,文本字符串)?

非常感谢!

回答

3

这应该是一个简单的问题来解决与映射数组像以下示例代码段:

$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 
} 
+0

确定。如果没有更好的方法来做到这一点,这将是最好的解决方案。谢谢。 – Darkry