例如:
我有变量$ 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,文本与字符串)?
非常感谢你!
最佳答案
要解决映射数组,例如下面的示例代码片段,这应该是一个简单的问题:
$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
}