pierwsze chcę powiedzieć, że zrobić rozpoznać różnicę 5 rok w tej odpowiedzi w porównaniu z przyjętym odpowiedź.
Chociaż uważam, że zaakceptowana odpowiedź wskazuje na ludzi we właściwym kierunku i znalazłem wiele innych odpowiedzi, które wskazują na to stanowisko, nie uważam, że jest to solidna odpowiedź na to pytanie lub wiele podobnych , w szczególności część, która mówi: "to pozwoli mi przetłumaczyć numer na odpowiedni typ danych".
W tym celu postanowiłem przywrócić parę funkcji, które php miał wcześniej, które już dla nas obsługiwały, mysqli_field_flags ($ result, $ field_offset) i mysqli_field_type ($ result, $ field_offset), chociaż mysqli_field_flags zwraca dokładnie co by nam dały stare mysql_field_flags (w przeważającej części, daj mi znać, jeśli ktoś znajdzie coś, co nie działa dokładnie tak jak stary, i możemy go zaktualizować tutaj, aby wszyscy mogli uzyskać do niego dostęp). Drugi, mysqli_field_type, zwraca tylko dane typu dla pola, w przeciwieństwie do mysql_field_type, które również zwróci flagi w tym samym ciągu.
Oba można pobrać stąd, daj mi znać, jeśli wystąpią problemy. (dalej, nie mogę wziąć pełnej odpowiedzialności za tę odpowiedź, ponieważ kredyt trafia do andre at koethur dot de za komentowanie z większością tego, czego potrzebujemy na stronie php.net), właśnie dodałem ten bezpośredni bit, aby uzyskać nasze liczby i skorygować nazwy, które lepiej pasują do schematu, a ponieważ nie istnieją już funkcje php mysqli_field_flags i mysqli_field_type dla mysqli, działają one jak doskonałe funkcje kompatybilności wstecznej.
jeśli te pomóc PROSZĘ GŁOSUJ tak INNE się komunikat, JEŚLI PO czyta to zmień ODPOWIEDŹ;)
PHP 5.5 mysql_field_type „do tyłu Funkcja zgodności”, mysqli_field_type (zawiadomienie I)
/**
* Returns a string that represents the mysql field type
*
* @param mysqli_resource $result The result resource that is being evaluated. This result comes from a call to mysql_query().
* @param integer $field_offset The numerical field offset. The field_offset starts at 0. If field_offset does not exist, an error of level E_WARNING is also issued.
*/
function mysqli_field_type($result , $field_offset) {
static $types;
$type_id = mysqli_fetch_field_direct($result,$field_offset)->type;
if (!isset($types))
{
$types = array();
$constants = get_defined_constants(true);
foreach ($constants['mysqli'] as $c => $n) if (preg_match('/^MYSQLI_TYPE_(.*)/', $c, $m)) $types[$n] = $m[1];
}
return array_key_exists($type_id, $types)? $types[$type_id] : NULL;
}
PHP 5.5 mysql_field_flags "Kompatybilność wsteczna funkcyjne", mysqli_field_flags (zawiadomienie I)
/**
* Returns a string that represents the mysql field flags
*
* @param mysqli_resource $result The result resource that is being evaluated. This result comes from a call to mysql_query().
* @param integer $field_offset The numerical field offset. The field_offset starts at 0. If field_offset does not exist, an error of level E_WARNING is also issued.
*/
function mysqli_field_flags($result , $field_offset) {
static $flags;
// Get the field directly
$flags_num = mysqli_fetch_field_direct($result,$field_offset)->flags;
if (!isset($flags))
{
$flags = array();
$constants = get_defined_constants(true);
foreach ($constants['mysqli'] as $c => $n) if (preg_match('/MYSQLI_(.*)_FLAG$/', $c, $m)) if (!array_key_exists($n, $flags)) $flags[$n] = $m[1];
}
$result = array();
foreach ($flags as $n => $t) if ($flags_num & $n) $result[] = $t;
$return = implode(' ', $result);
$return = str_replace('PRI_KEY','PRIMARY_KEY',$return);
$return = strtolower($return);
return $return;
}
Piękno - dziękuję, proszę pana! –