(PHP 4, PHP 5)
mysql_query — Invia una query MySQL
$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
:
Example #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
:
Example #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().