Ragazzi ma perche se voglio effettuare una query di estrazione devo usare i metodi prepare ed execute e poi visualizzare il risultato con il metodi handle->fetchrow_array()? Non posso usare al posto di prepare ed execute il metodo do?
Ragazzi ma perche se voglio effettuare una query di estrazione devo usare i metodi prepare ed execute e poi visualizzare il risultato con il metodi handle->fetchrow_array()? Non posso usare al posto di prepare ed execute il metodo do?
C/C++
Per sua natura il metodo "do" restituisce solo il numero delle linee processate, quindi non serve a molto per una select.
Il metodo generale per prelevare dati è:
$sth = $dbh->prepare(query);
$sth->execute();
utilizzo dei dati
$sth->finish();
ma in alcuni casi è possibile utilizzare il metodo di acquisizione atomica che è molto più performante e comodo, ma richiede al programmatore maggiore attenzione al controllo degli errori e dei risultati.
Acquisizione atomica.
lo puoi usare quando ti serve un singolo record, e sei sicuro che ne verrà restituito solo uno:
@array = $dbh->selectrow_array(query);
In @array hai i valori dei vari campi richiesti in query di un singolo record.
lo puoi usare quando ti servono i dati di una sola colonna, anche appartenenti a più record:
$array_ref = $dbh->selectcol_arrayref(query);
$array_ref è un reference all'array anonimo che contiene la colonna di dati che ti serve.
Marco Allegretti
shishii@tiscalinet.it
Lang: PERL, PHP, SQL.
Linux user n° 268623 Fedora Core 10, Fedora Core 6, Debian Sarge on mips