Ciao a tutti,
sto usando dentro a php, il sqlite.
Ho l'esigenza di vedere se il mio database contiene o meno almeno una tabella (se vuota il file del database è uguale zero ho notato)....
Esiste qualche funzione a riguardo??
Grazie 1000![]()
Ciao a tutti,
sto usando dentro a php, il sqlite.
Ho l'esigenza di vedere se il mio database contiene o meno almeno una tabella (se vuota il file del database è uguale zero ho notato)....
Esiste qualche funzione a riguardo??
Grazie 1000![]()
puoi usare le seguenti query sql
codice:show TABLE status ;la prima mostra tutti i dettagli delle tabellecodice:show TABLES;
la seconda solo le tabelle presenti nel database
Ciro Marotta - Programmatore JAVA - PHP
Preferisco un fallimento alle mie condizioni che un successo alle condizioni altrui.
grazie, ma a me interessava saperlo all'interno del codice.
Se la tabella era già creata, non la ricreavo...
bh metti il codice che ti ho dato e controlli che la tabella tua non ci sia mi pare banale![]()
Ciro Marotta - Programmatore JAVA - PHP
Preferisco un fallimento alle mie condizioni che un successo alle condizioni altrui.
non riesco a capire..
dovrei tipo ottenere un true o false all'interno del codice a seconda che la tabella sia stata creata o meno... Dopo con un if agivo di conseguenza
fai così
nel while hai $riga...che è l'insieme di tutte le tabelleCodice PHP:
$query=mysql_list_tables("nome database");
while ($riga = mysql_fetch_row($query)) {
print "Tabella:" . $riga[0] ."\n";
}
basta che verifichi con quella
poi magari qualche guru mi spiega perchè non funziona con un ciclo for each mentre col while si
Ciro Marotta - Programmatore JAVA - PHP
Preferisco un fallimento alle mie condizioni che un successo alle condizioni altrui.
non serve essere guru per capire il perche' ...Originariamente inviato da ciro78
fai così
nel while hai $riga...che è l'insieme di tutte le tabelleCodice PHP:
$query=mysql_list_tables("nome database");
while ($riga = mysql_fetch_row($query)) {
print "Tabella:" . $riga[0] ."\n";
}
basta che verifichi con quella
poi magari qualche guru mi spiega perchè non funziona con un ciclo for each mentre col while si
la funzione mysql_fetch_row() & C. legge una riga per volta dal buffer del result set.
il while prosegue nella scansione del result set tramite il TRUE reso dalla funzione mysql_fetch_* e tu vai a leggere quanto passato in $riga, di volta in volta, fino a quando la funzione raggiunto il fondo del buffer rendera' un FALSE.
il foreach invece legge l'array $riga che e' composto da un solo record e quindi non scandisce il result set ma ti da solo i valori di quella specifica riga estratta dalla funzione e non i restanti record che rimangono nel buffer del result set.
![]()
Il silenzio è spesso la cosa migliore. Pensa ... è gratis.
non mi è del tutto chiaro. il problema del foreach dipenderebbe dunque dal fatto che il risultato della query non è un array??
Ciro Marotta - Programmatore JAVA - PHP
Preferisco un fallimento alle mie condizioni che un successo alle condizioni altrui.
il risultato e' una array con un solo record (ne estrae uno alla volta)Originariamente inviato da ciro78
non mi è del tutto chiaro. il problema del foreach dipenderebbe dunque dal fatto che il risultato della query non è un array??
se poi il foreach lo lanci finito la raccolta del result set da parte del while .... sara' vuoto proprio perche' l'ultima chiamata del while ha prodotto un FALSE.
Il silenzio è spesso la cosa migliore. Pensa ... è gratis.