Newsgroup: it.comp.programmare
Titolo: [PHP] va in crash con ODBC :-(

Ciao,
uso php3.exe a linea di comando, sotto windows, e l'output
lo ridirigo verso un file.
Ho un DB MDB (Access) con dei dati che vorrei prelevare
con il PHP.
Se faccio una query tipo "select * from soci" tutto va bene
e mi faccio la bella tabellina con i soci del DB,
se invece uso la query "select * from soci where tiposocio=1"
mi va in crash il progrmma, cioe' compare la finestrella
"php ha eseguito una operazione etc etc".
Qualcuno ha idea dic osa accada ?
grazie
Vincenzo 'lo sciamano'   Bologna (ITALIA-ITALY)
Homepage  
http://www.geocities.com/vincesalsero/
Membro Fondatore del CSM (Club Seghe Mentali)
http://www.freeweb.org/free/csm

 Qualcuno ha idea dic osa accada ?
Posta il codice please.
Giangi

Posta il codice please.
eccolo:
<?
  echo ("<CENTER><TABLE CELLSPACING=2 CELLPADDING=2 WIDTH=100% >\n");
  $dbh = odbc_connect( "MIODB", "", "");
  if ( $dbh )
  {
    $sqlh = odbc_exec( $dbh, "SELECT * FROM Soci Order By data;");
    //$sqlh = odbc_exec( $dbh, "SELECT * FROM Soci WHERE tiposocio=1
ORDER BY data;");
    if ( $sqlh )
    {
      while ( odbc_fetch_row( $sqlh ) )
      {
        echo ("<TR>\n");
        echo ("<TD>" . odbc_result( $sqlh, "Nome" ) . "</TD>" );
        echo ("<TD>" . odbc_result( $sqlh, "email" ) . "</TD>\n" );
 
        echo ("</TR>\n");
      }
    } else echo "SQL non effettuata";
  odbc_close( $dbh );
  }
  else  echo "Connessione al DB non avvenuta";
  echo ("</TABLE><BR></CENTER>\n");
?>
Se uso la query adesso attiva nessun problema, ho la mia lista di
soci,
se invece uso la query della riga sotto, mi va in crash il php.exe,
premetto che il campo tiposocio di tipo numerico esiste, ed in ogni
caso mi aspetterei piu' un problema di "SQL non effettuata" piuttosto
 che il chash dell'interprete.
ciao e grazie


ORDER BY data;");
Hai provato a chiudere la condizione Where con tiposocio='1' ?
Alcuni SQL engines sono pedantici quando si tratti di passare i parametri
delle query
-- 
Sidewinder  
---------------------------------------------------------------------
In the first place, God made idiots; this was for practice; then he made
school boards.
		-- Mark Twain
---------------------------------------------------------------------


ho provato or ora, in effetti PHP non va in crash, ma nella pagina
risultante invece della lista soci appare cio'
Warning: SQL error: [Microsoft][Driver ODBC Microsoft Access] Tipi di
dati non corrispondenti nell'espressione criterio.,
SQL state 22005 in SQLExecDirect in soci\index.phtml on line 112
SQL non effettuata
che pare comprensibile se tiposocio e' numerico...
grazie comunque


Prova ad utilizzare l'espressione seguente:
$sqlh = odbc_exec($dbh,"SELECT * FROM Soc WHERE tiposocio = 1");
Ovvero a non mettere il ; finale dello statement SQL; il parser di PHP lo
appende in automatico ai tuoi statement SQL ed in alcuni casi il fatto che tu
lo inserisca nella query string puo' incasinarlo (e' anche vero che in alcuni
casi funziona lo stesso, comunque a questo riguardo c'e' un commento nel
manulae di PHP).
Io sia su MySQL che su ORACLE non inserisco il ';' finale degli statement SQL
e funzionano tranquillamente, con ODBC siceramente ci lavoro poco (sono UNIX
dependant) e non mi ricordo :)
 Voster semper Voster
           .And.


dependant) e non mi ricordo :)
purtroppo non ho spazio a suff sul disco per installare Linux,
ed in ogni caso, la cosa che disturba di piu' e' che va in crash,
posso capire se fallisse la query... ma incrash il programma...
 insomma...
grazie lo stesso
