Solitamente viene definito come chiave primaria il primo campo di una tabella ma nessuno vieta di impostarlo in una qualsiasi altra posizione, quindi puntare alla cieca su di essa non è consigliabile.
Come già ti accennavo se disponi di mysql 5 puoi ricavare il nome del campo chiave primaria con una semplice query
Se invece non hai mysql 5 prova a eseguire questa queryCodice PHP:function pk($tabella) {
$query = mysql_query("SELECT COLUMN_NAME
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_SCHEMA = 'nome_database'
AND TABLE_NAME = \"$tabella\"
AND COLUMN_KEY = 'PRI'");
$row = mysql_fetch_row($query);
return $row[0] !='' ? $row[0] : 'nessuna chiave';
}
// esempio query
$query = 'select * from nome_tabella where '.pk('nome_tabella').'=.......';
show index from nome_tabella
Nella colonna Key_name troverai PRIMARY per la chiave primaria oltre ad eventuali altri indici che potresti aver definito. Anche in questo caso ti crei una funzioncina ad hoc con la quale estrapoli la "Column_name" relativa alla voce PRIMARY.![]()

Rispondi quotando