2011-12-05 2 views
0

예 : 변수 $ name이 있으며 데이터베이스 $ table 및 column name에 데이터베이스에 저장하려고합니다. 그러나 내가 데이터베이스 열과 동일한 데이터 유형을 가지고 있다는 사실을 vefiry하기 전에 (varchar, char, text의 경우 ... 문자열이어야합니다).MySQL과 PHP 사이의 데이터 유형 비교

어떻게하면됩니까?

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

얻기 PHP 종류 :

은 MySQL의 데이터 형식을 선택합니다

gettype($variable); 

을하지만 어떻게 데이터 유형 (VARCHAR, 문자, 문자열 텍스트)을 비교할 수 있습니까?

대단히 감사합니다!

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

답변

3

는 다음 샘플 코드와 같은 매핑 배열을 해결할 수있는 간단한 문제가 될 것이다. 이렇게하는 더 이상 우아한 방법이 없다면 이것이 최선의 해결책이 될 것입니다. 감사.
+0

OK : – Darkry