mysql_query

(PHP 3, PHP 4 , PHP 5)

mysql_query -- Invia una query MySQL

Descrizione

resource mysql_query ( string query [, resource identificativo_connessione [, int modo_risultato]])

mysql_query() invia una query al database attualmente attivo sul server associato all'identificativo di conmnessione specificato. Se identificativo_connessione non specificato, viene considerata l'ultima connessione aperta. Se nessuna connessione aperta, la funzione prova a stabilire una connessione come se mysql_connect() fosse richiamata senza argomenti ed usa questa.

Il paramentro opzionale modo_risultato pu essere MYSQL_USE_RESULT e MYSQL_STORE_RESULT. Il valore predefinito MYSQL_STORE_RESULT, cos il risultato bufferato. Vedere anche mysql_unbuffered_query() per la controparte di questo comportamento.

Nota: La stringa della query non dovrebbe terminare con un punto e virgola.

Solo per le istruzioni SELECT, SHOW, EXPLAIN o DESCRIBE mysql_query() restituisce un identificativo di risorsa o FALSE se la query non stata eseguita correttamente. Per altri tipi di istruzioni SQL, mysql_query() restituisce TRUE in caso di successo e FALSE in caso di errore. Un valore restituito diverso da FALSE indica che la query era lecita ed stata eseguita dal server. Questo non indica niente riguardo il numero di righe coinvolte o restituite. assolutamente possibile che una query abbia successo ma che non coinvolga o restituisca nessuna riga.

La seguente query non valida sintatticamente, quindi mysql_query() fallisce e restituisce FALSE:

Esempio 1. mysql_query()

<?php
$risultato
= mysql_query("SELECT * WHERE 1=1")
    or die(
"Query non valida: " . mysql_error());
?>

La seguente query non semanticamente valida se mia_colonna non una colonna della tabella mia_tabella, quindi mysql_query() fallisce e retituisce FALSE:

Esempio 2. mysql_query()

<?php
$risultato
= mysql_query("SELECT mia_colonna FROM mia_tabella")
    or die(
"Query non valida: " . mysql_error());
?>

mysql_query() fallisce e restituisce FALSE anche se non si hanno i permessi per accedere alle tabelle cui la query fa riferimento.

Assumendo che la query abbia succeesso, si pu richiamare mysql_num_rows() per scoprire quante righe sono state restituite da un'istruzione SELECT o mysql_affected_rows() per scoprire quante righe sono state coinvolte da un'istruzione DELETE, INSERT, REPLACE o UPDATE.

Solo per le istruzioni SELECT, SHOW, DESCRIBE o EXPLAIN, mysql_query() restituisce un nuovo identificativo di risultato che si pu passare a mysql_fetch_array() e ad altre funzioni che si occupano dei risultati delle tabelle. Quando si conclude il trattamento del risultato, si possono liberare le risorse associate ad esso richiamando mysql_free_result(). Comunqe la memoria sar liberata automaticamente Al termnine dell'esecuzione dello script.

Vedere anche: mysql_num_rows(), mysql_affected_rows(), mysql_unbuffered_query(), mysql_free_result(), mysql_fetch_array(), mysql_fetch_row(), mysql_fetch_assoc(), mysql_result(), mysql_select_db() e mysql_connect().