Здравтсвуйте, как в MySQLi узнать тип определенного поля, допустим в MySQL есть: Code: mysql_field_type($result, $field_offset) А в MySQLi аналогичной функции я не нашел...
Не то это... В общем сам нашел: http://ru.php.net/manual/ru/mysqli-result.fetch-field.php т.е делаем аналог mysql_field_type: Code: $result->field_seek($offset); $finfo = $result->fetch_field(); echo $finfo->type; Но $finfo->type возвращает тип поля в числовом формате, а как сделать чтобы возвращал в текстовом, т.е string, text, int и т.д ?
1. Составить список методом тыка 2. Нагуглить 3. Анализировать вывод команд SHOW COLUMNS или DESCRIBE
PHP: $mysql_data_type_hash = array( 1=>'tinyint', 2=>'smallint', 3=>'int', 4=>'float', 5=>'double', 7=>'timestamp', 8=>'bigint', 9=>'mediumint', 10=>'date', 11=>'time', 12=>'datetime', 13=>'year', 16=>'bit', //252 is currently mapped to all text and blob types (MySQL 5.0.51a) 253=>'varchar', 254=>'char', 246=>'decimal' );
Сотставил согласно: http://php.net/manual/ru/mysqli.constants.php Может кому-нибудь тоже пригодится: PHP: $types=array( MYSQLI_TYPE_DECIMAL=>'decimal', MYSQLI_TYPE_NEWDECIMAL=>'numeric', MYSQLI_TYPE_BIT=>'bit', MYSQLI_TYPE_TINY=>'tinyint', MYSQLI_TYPE_SHORT=>'int', MYSQLI_TYPE_LONG=>'int', MYSQLI_TYPE_FLOAT=>'float', MYSQLI_TYPE_DOUBLE=>'double', MYSQLI_TYPE_NULL=>'default null', MYSQLI_TYPE_TIMESTAMP=>'timestamp', MYSQLI_TYPE_LONGLONG=>'bigint', MYSQLI_TYPE_INT24=>'mediumint', MYSQLI_TYPE_DATE=>'date', MYSQLI_TYPE_TIME=>'time', MYSQLI_TYPE_DATETIME=>'datetime', MYSQLI_TYPE_YEAR=>'year', MYSQLI_TYPE_NEWDATE=>'date', MYSQLI_TYPE_ENUM=>'enum', MYSQLI_TYPE_SET=>'set', MYSQLI_TYPE_TINY_BLOB=>'tinyblob', MYSQLI_TYPE_MEDIUM_BLOB=>'mediumblob', MYSQLI_TYPE_LONG_BLOB=>'longblob', MYSQLI_TYPE_BLOB=>'blob', MYSQLI_TYPE_VAR_STRING=>'varchar', MYSQLI_TYPE_STRING=>'char', MYSQLI_TYPE_GEOMETRY=>'geometry'); function get_type ($result,$offset) { global $types; $result->field_seek($offset); $finfo = $result->fetch_field(); return $types[$finfo->type]; }