string errore_mysql ( [resource identificativo_connessione])
Restituisce il testo dell’errore dall’ultima funzione MySQL, oppure ” (la stringa vuota) se nessun errore
intercorre.
Gli errori ritornano dal database MySQL senza visualizzare i messaggi di avvertimento. Si usa invece
mysql_error() per recuperare il testo dell’errore. Notare che questa funzione restituisce solo il testo
dell’errore della più recente funzione MySQL eseguita (ad esclusione di mysql_error() e
mysql_errno()), quindi se la si vuole usare, assicurarsi di controllare il valore prima di richiamare
un’altra funzione MySQL.
<?php
mysql_connect("localhost", "utente_mysql", "password_mysql");
mysql_select_db("db_inesistente");
echo mysql_errno() . ": " . mysql_error(). "\n";
mysql_select_db("kossu");
mysql_query("SELECT * FROM tabella_inesistente");
echo mysql_errno() . ": " . mysql_error() . "\n";
?>
L’esempio riportato sopra dovrebbe produrre il seguente output:
1049: Unknown database ‘db_inesistente’
1146: Table ‘kossu.tabella_inesistente’ doesn’t exist
Nota: Se l’argomento opzionale è specificato la connessione indicata viene usata per recuperare il codice
d’errore. Altrimenti viene usata l’ultima connessione aperta.
array mysql_fetch_array ( resource risultato [, int tipo_risultato])
Restituisce un array che corrisponde alla riga caricata o FALSE se non ci sono più righe.
mysql_fetch_array() è una versione estesa di mysql_fetch_row(). Oltre a memorizzare i dati
del risultato in array con indice numerico, questa li memorizza anche con indici associativi usando i nomi dei mcampi come chiavi.
Se due o più colonne del risultato hanno gli stessi nomi di campo, l’ultima colonna avrà la precedenza. Per
accedere alle altre colonne con lo stesso nome, si deve usare l’indice numerico della colonna o farne un alias.
Per le colonne-alias, non si può accedere al contenuto con il nome della colonna originale (in questo esempio
si usa ‘campo’).
Il secondo argomento opzionale tipo_risultato in mysql_fetch_array() è una costante e può assumere
i seguenti valori: MYSQL_ASSOC, MYSQL_NUM e MYSQL_BOTH. Questa caratteristica è stata aggiunta
nel PHP 3.0.7. MYSQL_BOTH è il valore predefinito per questo argomento.
Usando MYSQL_BOTH, si ottiene un array con entrambe gli indici (associativo e numerico). Usando
MYSQL_ASSOC, si ottengono solo gli indici associativi (stesso funzionamento di
mysql_fetch_assoc()), usando MYSQL_NUM, si ottengono solo gli indici numerici (stesso
funzionamento di mysql_fetch_row()).
<?php
mysql_connect("localhost", "utente_mysql", "password_mysql") or
die("Connessione non riuscita: " . mysql_error());
mysql_select_db("mio_db");
$result = mysql_query("SELECT id, nome FROM mia_tabella");
while ($riga = mysql_fetch_array($risultato, MYSQL_NUM)) {
printf ("ID: %s Nome: %s", $riga[0], $riga[1]);
}
mysql_free_result($risultato);
?>
array mysql_fetch_assoc ( resource risultato)
Restituisce un array associativo che corrisponde alla riga caricata o FALSE se non ci sono più righe.
mysql_fetch_assoc() è equivalente alla chiamata di mysql_fetch_array() con
MYSQL_ASSOC come secondo parametro opzionale. Questa restituisce solo un array associativo. Questo è
il modo in cui mysql_fetch_array() funzionava originalmente. Se è necessario l’indice numerico al
posto di quello associativo, usare mysql_fetch_array().
Se due o più colonne del risultato hanno gli stessi nomi di campo, l’ultima colonna avrà la precedenza. Per
accedere alle altre colonne con lo stesso nome, si deve accedere al risultato con l’indice numerico usando
mysql_fetch_row() oppure aggiungere degli alias. Vedere l’esempio nella descrizione di
mysql_fetch_array() per quanto concerne gli alias.
<?php
$conn = mysql_connect("localhost", "utente_mysql", "password_mysql");
if (!$conn) {
echo "Impossibile connettersi al DB: " . mysql_error();
exit;
}
if (!mysql_select_db("mio_nome_db")) {
echo "Impossibile selezionare mio_nome_db: " . mysql_error();
exit;
}
$sql = "SELECT id as id_utente, nome_intero, stato_utente
FROM una_tabella
WHERE stato_utente = 1";
$risultato = mysql_query($sql);
if (!$risultato) {
echo "Fallimento nell'esecuzione della query ($sql) dal DB: " .
mysql_error();
exit;
}
if (mysql_num_rows($risultato) == 0) {
echo "Nessuna riga trovata, niente da stampare quindi si esce";
exit;
}
// Finché esiste una riga di dati, si pone questa riga in $riga come un
array associativo
// Nota: Se ci si aspetta solo una riga, non è necessario usare un
ciclo
// Nota: Se si mette extract($riga); all'interno del seguente ciclo,
// si creeranno $id_utente, $nome_intero e $stato_utente
while ($riga = mysql_fetch_assoc($risultato)) {
echo $riga["id_utente"];
echo $riga["nome_intero"];
echo $riga["stato_utente"];
}
mysql_free_result($risultato);
?>
object mysql_fetch_field ( resource risultato [, int indice_campo])
Restituisce un oggetto contenente le informazioni di un campo.
mysql_fetch_field() può essere usata al fine di ottenere informazioni circa i campi di un determinato
risultato di una query. Se l’indice del campo non è specificato, il successivo campo non ancora recuperato da
mysql_fetch_field() viene considerato.
Le proprietà dell’oggetto sono:
name – nome della colonna
table nome della tabella a cui appartiene la colonna
max_length massima lunghezza della colonna
not_null 1 se la colonna non può essere NULL
primary_key 1 se la colonna è una chiave primaria
unique_key 1 se la colonna è una chiave unica
multiple_key 1 se la colonna è una chiave non-unica
numeric 1 se la colonna è numerica
blob 1 se la colonna è un BLOB
type il tipo della colonna
unsigned 1 se la colonna è senza segno
zerofill 1 se la colonna è completata da zeri
<?php
mysql_connect('localhost:3306', $utente, $password)
or die("Connessione non riuscita: " . mysql_error());
mysql_select_db("database");
$risultato = mysql_query("select * from tabella")
or die("Query fallita: " . mysql_error());
/* ottiene i metadata della colonna */
$i = 0;
while ($i < mysql_num_fields($risultato)) {
echo "Informazioni della colonna $i:<br />\n";
$meta = mysql_fetch_field($risultato);
if (!$meta) {
echo "Nessuna informazione disponibile<br />\n";
}
echo "<pre>
blob: $meta->blob
max_length: $meta->max_length
multiple_key: $meta->multiple_key
name: $meta->name
not_null: $meta->not_null
numeric: $meta->numeric
primary_key: $meta->primary_key
table: $meta->table
type: $meta->type
unique_key: $meta->unique_key
unsigned: $meta->unsigned
zerofill: $meta->zerofill
</pre>";
$i++;
}
mysql_free_result($risultato);
?>
array mysql_fetch_lengths ( resource risultato)
Restituisce un array che corrisponde alle lunghezze di ogni campo nell’ultima riga caricata da
mysql_fetch_row() oppure FALSE in caso di errore.
mysql_fetch_lengths() memorizza le lunghezze di ogni colonna dell’ultima riga restituita da
mysql_fetch_row(), mysql_fetch_array() e mysql_fetch_object() in un array,
iniziando con un indice pari a 0.
object mysql_fetch_object ( resource risultato)
Restituisce un oggetto con proprietà che corrispondono alla riga caricata oppure FALSE se non ci sono più
righe.
mysql_fetch_object() è simile a mysql_fetch_array(), con una differenza: viene restituito un
oggetto invece che un array. Indirettamente, questo significa che si ha solo accesso ai dati attraverso i nomi
dei campi e non attraverso il loro indice (i numeri sono nomi di proprietà illeciti).
<?php
/* questo è valido */
echo $riga->campo;
/* questo non è valido */
echo $riga->0;
?>
<?php
mysql_connect("hostname", "utente", "password");
mysql_select_db($db);
$risultato = mysql_query("select * from tabella");
while ($riga = mysql_fetch_object($risultato)) {
echo $riga->id_utente;
echo $riga->nome_intero;
}
mysql_free_result($risultato);
?>
array mysql_fetch_row ( resource risultato)
Restituisce un array che corrisponde ad una riga caricata oppure FALSE se non ci sono più righe.
mysql_fetch_row() carica una riga di dati dal risultato associato all’identificativo specificato. La riga è
restituita come un array. Ogni colonna del risultato è memorizzata in un indice dell’array, partendo
dall’indice 0.
La susseguente chiamata a mysql_fetch_row() restituisce la successiva riga nell’intervallo del risultato
oppure FALSE se non ci sono più righe.
string mysql_field_flags ( resource risultato, int indice_campo)
mysql_field_flags() restituisce i flag del campo specificato. I flag sono restituiti come singole parole
per flag separate da un singolo spazio, in modo che sia possibile suddividere il valore restituito usando
explode().
I seguenti flag sono restituiti, se la versione di MySQL è abbastanza aggiornata da supportarli: "not_null",
"primary_key", "unique_key", "multiple_key", "blob", "unsigned", "zerofill", "binary", "enum",
"auto_increment", "timestamp".
Popularity: 12% [?]
Vuoi essere sempre aggiornato??? Iscriviti ai feed o invia un trackback
Nessun commento, scrivi tu il primo!
Articoli correlati