Add to Google Reader or Homepage

domenica 23 novembre 2008

Advertisement
Web agency
Realizzazione siti web


Menù

Home
Html & XHtml
Css
Javascript
Php
Motori di ricerca
Contatti

Login Form






Password dimenticata?
Nessun account? Registrati


Home arrow Php arrow Guida php arrow Le funzioni mysql - Parte 1

Le funzioni mysql - Parte 1 Stampa E-mail
Scritto da Luciano viviani   

int mysql_affected_rows ( [resource identificativo_connessione])
restituisce il numero di righe coinvolte nell'ultima query INSERT, UPDATE o DELETE associata a
identificativo_connessione. Se l'identificativo di connessione non è specificato, viene considerata l'ultima
connessione aperta con mysql_connect().
Se l'ultima query era una query DELETE senza clausola WHERE, tutti i record saranno cancellati dalla
tabella ma questa funzione restituirà zero.
Usando UPDATE, MySQL non aggiornerà le colonne nelle quali il nuovo valore è uguale al vecchio valore.
Questo crea la possibilità che mysql_affected_rows() può non uguagliare realmente il numero di
righe corrispondenti ma solo il numero di righe effettivamente coinvolte dalla query.
mysql_affected_rows() non funziona con l'istruzione SELECT ma solo con le istruzioni che
modificano i record. Per ricavare il numero di righe restituite da SELECT, usare mysql_num_rows().
Se l'ultima query fallisce, questa funzione restituisce -1.

Query di eliminazione

<?php
/* connessione al database */
mysql_pconnect("localhost", "utente_mysql", "password_mysql") or
die("Connessione non riuscita: " . mysql_error());
/* questo dovrebbe restituire il numero corretto di record eliminati */
mysql_query("DELETE FROM mia_tabella WHERE id < 10");
printf ("Records eliminati: %d\n", mysql_affected_rows());
/* senza la clausola WHERE nell'istruzione DELETE,
dovrebbe restituire 0 */
mysql_query("DELETE FROM mia_tabella");
printf ("Record eliminati: %d\n", mysql_affected_rows());
?>

L'esempio riportato sopra dovrebbe produrre il seguente output: Records eliminati: 10
Records eliminati: 0

Query di aggiornamento

<?php
/* connessione al database */
mysql_pconnect("localhost", "utente_mysql", "password_mysql") or
die("Connessione non riuscita: " . mysql_error());
/* aggiornamento dei record */
mysql_query("UPDATE mia_tabella SET used=1 WHERE id < 10");
printf ("Record aggiornati: %d\n", mysql_affected_rows());
mysql_query("COMMIT");
?>

L'esempio riportato sopra dovrebbe produrre il seguente output: Record aggiornati: 10

bool mysql_close ( [resource identificativo_connessione])
Restituisce TRUE in caso di successo, FALSE in caso di fallimento.
mysql_close() chiude la connessione al server MySQL associata all'identificativo di connessione
specificato. Se identificativo_connessione non è specificato, viene usata l'ultima connessione aperta.
L'uso di mysql_close() non è normalmente necessario, dal momento che le connessioni non persistenti
sono chiuse automaticamente alla fine dell'esecuzione dello script.
Nota: mysql_close() non chiude le connessioni persistenti create da mysql_pconnect().

Chiusura connessione MySQL

<?php
$connessione = mysql_connect("localhost", "utente_mysql",
"password_mysql")
or die("Connessione non riuscita: " . mysql_error());
print ("Connesso con successo");
mysql_close($connessione);
?>

resource mysql_connect ( [string server [, string nome_utente [, string password [, bool nuova_connessione [, int client_flags]]]]])
Restituisce un identificativo di connessione MySQL in caso di successo oppure FALSE in caso di fallimento.
mysql_connect() stabilisce una connessione ad un server MySQL. I seguenti valore predefiniti sono
assunti per i parametri opzionali mancanti: server = 'localhost:3306', nome_utente = nome dell'utente
proprietario del processo server e password = password vuota.
Il parametro server può anche includere un numero di porta. Es. "hostname:porta" o un percorso ad un socket
es. ":/percorso/al/socket" per il localhost.
Se si fa una seconda chiamata a mysql_connect() con gli stessi argomenti, nessuna nuova connessione
sarà stabilita, ma sarà restituito l'identificativo della connessione già aperta. Il parametro
nuova_connessione modifica questo comportamento e fa sì che mysql_connect() apra sempre una
nuova connessione, anche se mysql_connect() era stata chiamata prima con gli stessi parametri. il
parametro client_flags può essere combinato con le costanti MYSQL_CLIENT_COMPRESS,
MYSQL_CLIENT_IGNORE_SPACE o MYSQL_CLIENT_INTERACTIVE.
Nota: Il parametro nuova_connessione è stato introdotto dal PHP 4.2.0
Il parametro client_flags è stato introdotto dal PHP 4.3.0
La connessione al server sarà chiusa prima della fine dell'esecuzione dello script, a meno che questa non sia
precedentemente chiusa esplicitamente richiamando mysql_close().

bool mysql_data_seek ( resource identificativo_risultato, int numero_riga)
Restituisce TRUE in caso di successo, FALSE in caso di fallimento.
mysql_data_seek() muove il puntatore di riga interno del risultato MySQL associato all'identificativo
specificato per puntare ad un determinato numero di riga. La successiva chiamata a mysql_fetch_row()
dovrebbe restituire questa riga.
numero_riga inizia da 0. numero_riga dovrebbe essere un valore nell'intervallo che va da 0 a
mysql_num_rows - 1.
Nota: La funzione mysql_data_seek() può essere usata solo insieme a mysql_query(), non con
mysql_unbuffered_query().


<?php
$connessione = mysql_pconnect("localhost", "utente_mysql",
"password_mysql")
or die("Connessione non riuscita: " . mysql_error());
mysql_select_db("samp_db")
or die("Selezione del database non riuscita: " . mysql_error());
$query = "SELECT cognome, nome FROM amici";
$risultato = mysql_query($query)
or die("Query fallita: " . mysql_error());
/* caricamento righe in ordine inverso */
for ($i = mysql_num_rows($risultato) - 1; $i >= 0; $i--) {
if (!mysql_data_seek($risultato, $i)) {
echo "Non si può eseguire il seek alla riga $i: " .
mysql_error() . "\n";
continue;
}
if(!($riga = mysql_fetch_object($risultato)))
continue;
echo "$riga->cognome $riga->nome<br />\n";
}
mysql_free_result($risultato);
?>


string mysql_db_name ( resource risultato, int riga [, mixed campo])
mysql_db_name() accetta come primo paramentro il puntatore al risultato dalla chiamata a
mysql_list_dbs(). Il parametro riga è un indice compreso nell'intervallo del risultato.
Se intercorre un errore, viene restituito FALSE. Usare mysql_errno() e mysql_error() per
determinare la natura dell'errore.


<?php
error_reporting(E_ALL);
mysql_connect('dbhost', 'nome_utente', 'password');
$db_list = mysql_list_dbs();
$i = 0;
$conteggio = mysql_num_rows($lista_db);
while ($i < $conteggio) {
echo mysql_db_name($lista_db, $i) . "\n";
$i++;
}
?>


int mysql_errno ( [resource identificativo_connessione])
Restituisce il numero di errore dall'ultima funzione MySQL, oppure 0 (zero) se nessun errore è intercorso.
Gli errori ritornano dal database MySQL senza visualizzare i messaggi di avvertimento. Usando invece
mysql_errno() si recupera il codice di errore. Notare che questa funzione restituisce solo il codice errore
della più recente funzione MySQL eseguita, quindi se la si vuole usare, assicurarsi di controllare il valore
prima di chiamare 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.

 
< Prec.   Pros. >


Feed Rss


Corso PHP Completo
Corso completo per la creazione di siti Web dinamici. Corso con assistenza ed attestato finale!
Corso MySQL
Gestione del database open-source. Corso con assistenza ed attestato finale!