Manuale PHP
Indietro |  | Avanti

# 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().

Indietro | Partenza | Avanti
mysql_ping | Risali | mysql_real_escape_string