Descrizione
mysql_query(string $query
, resource $identificativo_connessione
= ?, int $modo_risultato
= ?): resource
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().