Autor Zpráva
Nedy
Profil
Potřebuji zjistit flags sloupců (jestli je to primary_key nebo enum atd..)
Dělal jsem to přez mysql_field_flags a to šlo v pohodě, ale v mysqli nic takového nevidím.
Je tady akorát mysqli_fetch_field s vlastností flags - An integer representing the bit-flags for the field.
Jenže to mi vyhodí číslo, a já nevím co znamená.
Nevíte někdo jak z toho čísla zjistit jaké flags ten sloupec má?
dík moc
Jakub Vrána
Profil *
Řekl bych, že nějak takhle:
$primary = ($flags & MYSQLI_PRI_KEY_FLAG)

Ostatní konstanty jsou na http://php.net/manual/en/ref.mysqli.php#mysqli.constants.
Nedy
Profil
Jo dík, akorát v tom mám ještě pár nejasností:
Když dám echo $primary; tak u sloupce, který je primary key teď vrací '2' a u sloupce, který není vrací '0'. Jestli to správně chápu tak nenulová_hodnota=flag_nastavena a nulová_hodnota=flag_nenastavena. Nebo je to nějak jinak -> jak?
Nedy
Profil
Ještě něco. Když chci zjistit, je-li sloupec typu enum, udělám to podobným způsobem, akorát využiji vlastnosti type:
$type = $col -> type;
$enum = ($type & MYSQLI_TYPE_ENUM);
Když je teď sloupec typu enum, vrací '246' a když ne tak vrací '3' nebo '1'.
Nevíte někdo kde zjistit kdy to vrací jaké číslo? (ať už jde o vlastnost flags nebo type)
V té tabulce předdefinovaných konstant jsou sice všechny předdefinované konstanty :-)
ale co znamenají hodnoty, které po jejich použití získám se už nedozvím..
Toto téma je uzamčeno. Odpověď nelze zaslat.