[MySQL][PHP] Jak sprawdzić typy i atrybuty ustawione dla każdej z kolumn tabeli?
Chcesz dowiedzieć się, jakiego typu pola znajdują się w tabeli z bazy danych i jakie mają dodatkowe atrybuty, co może wyglądać następująco dla przykładowej tabeli pracownicy:
pole |
typ |
długość |
atrybuty |
id: |
int |
11 |
not_null primary_key auto_increment |
imie: |
string |
100 |
|
nazwisko: |
string |
100 |
not_null |
Nie zawsze mamy pod ręką opis utworzonej tabeli, typy danych, długości pól oraz przypisane im atrybuty dodatkowe. Można je bardzo łatwo odczytać aby sprawdzić czy wpisywane do tabeli informacje będą pasowały do definicji kolumn. Zobacz jak to zrobić:
<?
$baza = mysql_connect("localhost", "user", "password");
mysql_select_db("baza1",$baza);
$wynik = mysql_query("SELECT * FROM gal_artysta LIMIT 1",$baza);
mysql_close($baza);
echo "<table cellpadding=3><tr>
<td><b>pole</b></td>
<td><b>typ</b></td>
<td><b>długość</b></td>
<td><b>atrybuty</b></td></tr>";
for ($i=0;$i<mysql_num_fields($wynik);$i++) {
echo "<tr><td><b>".mysql_field_name($wynik,$i).":</b></td>";
echo "<td>".mysql_field_type($wynik,$i)."</td>";
echo "<td>".mysql_field_len($wynik,$i)."</td>";
echo "<td>".mysql_field_flags($wynik,$i)."</td></tr>";
}
echo "</table>";
?>
To bardzo prosty zabieg, który polega na odczytaniu jednego rekordu (LIMIT 1) z określonej tabeli i wypisaniu dla każdej kolumny odpowiadających jej właściwości.
Funkcja mysql_field_name() zwraca nazwę pola, mysql_field_type() pobiera typ, mysql_field_len() pozwala określić długość pola, a mysql_field_flags() odczytuje dodatkowe atrybuty.
Całość została wypisana w postaci tabelki, aby w sposób czytelny zaprezentować dane.