[PHP] odbc_num_rows non funziona

greghph27

Nuovo Utente
21 Giu 2017
14
0
1
ciao a tutti
sono un nuovo utente
ho crato un semplice file php che gira su un server ubuntu con apache2 php5.5.9 ho installato Iseries Access Driver per as400 per connettermi ad un server in lan interna
mi sono accorto che la funzione odbc_num_rows non riporta alcun risultato (mi serve per l'impaginazione).
se espongo tutti i record (quindi eliminando odbc_num_rows) funziona correttamente.
non capisco dove sbaglio la parte di codice
$dsn = 'iSeries';
$connessione = odbc_connect("iSeries", "utente", "password");
$interrogazione ="SELECT Articolo, Descrizione, Giacenza FROM Magazzino WHERE Giacenza<>0 ORDER BY Articolo";
if ($risultato = odbc_exec($connessione, $interrogazione)) {
$nr = odbc_num_rows($risultato);
if($nr !=0){
for($x = 0; $x < $nr; $x++){
while (odbc_fetch_row($risultato)) {
.................bla bla bla bla
Premesso che se testo in locale in windows con wampserver e driver odbc iseries il file php funziona correttamente
odbc driver ("iseries Access ODBC Driver")
mi sa che è solo un problema di cursor_type
da php manual

resource odbc_connect ( string dsn, string user, string password [, int cursor_type] )
Returns an ODBC connection id or 0 (FALSE) on error.
With some ODBC drivers, executing a complex stored procedure may fail with an error similar to: "Cannot open a cursor on a stored procedure that has anything other than a single select statement in it". Using SQL_CUR_USE_ODBC may avoid that error. Also, some drivers don't support the optional row_number parameter in odbc_fetch_row(). SQL_CUR_USE_ODBC might help in that case, too.

ho provato ad impostare i valori (es 2) ma ritorna sempre un false

grazie
 

Discussioni simili