2011-12-05 53 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