Errore Mysql dopo migrazione a php 8.1
Regole del forum
Nel forum è vietato fare pubblicità senza avere l'autorizzazione dello staf di Netspecial.
Nel forum è vietato fare pubblicità senza avere l'autorizzazione dello staf di Netspecial.
Errore Mysql dopo migrazione a php 8.1
Buongiorno a tutti,
sto testando la versione SC con php 8.1. Non ho riscontrato particolari problemi nella migrazione dei progetti realizzati con il 7.3 tramme questo che però impatta molto:
Ho uno script che importa un file csv in una tabella. Per logiche legate al server MySql non uso LOAD INFILE ma leggo il file, lo inserisco in un array e poi costruisco la INSERT che funziona correttamente se la eseguo manualmente con Workbench e nell'ambiente con php 7.3. In quello con 8.1 invece mi restituisce il seguente errore: "2014: Cannot execute queries while there are pending result sets. Consider unsetting the previous PDOStatement or calling PDOStatement::closeCursor()"
Ovviamente non ci sono query in sospeso e l'errore si verifica anche inserendo una sola riga quindi non è legato alla lunghezza del file
Qualcouno ha avuto lo stesso problema e magari lo ha risolto?
Grazie in anticipo per le risposte
sto testando la versione SC con php 8.1. Non ho riscontrato particolari problemi nella migrazione dei progetti realizzati con il 7.3 tramme questo che però impatta molto:
Ho uno script che importa un file csv in una tabella. Per logiche legate al server MySql non uso LOAD INFILE ma leggo il file, lo inserisco in un array e poi costruisco la INSERT che funziona correttamente se la eseguo manualmente con Workbench e nell'ambiente con php 7.3. In quello con 8.1 invece mi restituisce il seguente errore: "2014: Cannot execute queries while there are pending result sets. Consider unsetting the previous PDOStatement or calling PDOStatement::closeCursor()"
Ovviamente non ci sono query in sospeso e l'errore si verifica anche inserendo una sola riga quindi non è legato alla lunghezza del file
Qualcouno ha avuto lo stesso problema e magari lo ha risolto?
Grazie in anticipo per le risposte
Mario Greco
Re: Errore Mysql dopo migrazione a php 8.1
Buogiorno,
non sembra un errore comune a tutti gli utenti Scriptcase.
In ogni caso senza vedere il codice è difficile fare delle ipotesi.
non sembra un errore comune a tutti gli utenti Scriptcase.
In ogni caso senza vedere il codice è difficile fare delle ipotesi.
Re: Errore Mysql dopo migrazione a php 8.1
Grazie Fabio,
ecco il codice.
Anch'io sto pensando che siano una serie di concause, ma nei vari log sia di apache, sia di mysql non trovo nulla di anomalo. Il server di test è clone di quello di produzione solo con il php 8.1 invece del 7.3. La query risultante lanciata singolarmente funziona per cui l'ultima discriminante resta sc.
Nei vari post su internet trovo riferimenti che dicono di passare la funzione closeCursor() alla connessione PDO ma non so come fare in sc.
ecco il codice.
Anch'io sto pensando che siano una serie di concause, ma nei vari log sia di apache, sia di mysql non trovo nulla di anomalo. Il server di test è clone di quello di produzione solo con il php 8.1 invece del 7.3. La query risultante lanciata singolarmente funziona per cui l'ultima discriminante resta sc.
Nei vari post su internet trovo riferimenti che dicono di passare la funzione closeCursor() alla connessione PDO ma non so come fare in sc.
Codice: Seleziona tutto
$dbnm=[sc_glo_db];
$sql="TRUNCATE TABLE $dbnm.import_arco_tmp;";
sc_exec_sql($sql, "conn_mysql");
$sq="ALTER TABLE $dbnm.import_arco_tmp AUTO_INCREMENT = 2;";
sc_exec_sql($sql, "conn_mysql");
$val='';
$ph = $this->Ini->path_doc;
$CSVfile = $ph.'/'.[nomefile];
$handler = fopen($CSVfile, 'r');
fgets($handler);
while($data = fgetcsv($handler,0,';','"')) {
$valori[] ="('". implode("','", str_replace("'","\'",$data))."')";
}
fclose($handler);
$val =implode(",",$valori);
$sql="INSERT INTO $dbnm.import_arco_tmp
(NUM_DOC, DT_FATT, BOLLA, DAT_BOLL, TIP_TRAS, RIF_CLI, RIF2CLI, COD_PART, COD_IPAR, COD_ARR, COD_IARR, CLIENTE, RAG_MIT, CAP_MIT, LOC_MIT, PROV_MIT, NAZ_MIT, RAG_DES, CAP_DES, LOC_DES, PROV_DES, NAZ_DES, NUM_COLL, TOT_VOL, TOT_PESO, BASE_TASS, COD_IVA, TOT_IMPO, TOT_IVA, TOT_SPED, IMP_DIFIS, IMP_NOLO, IMP_ADGES, IMP_ASSIC, IMP_FUEL, IMP_DIASS, IMP_GIACE, IMP_ISTAT, COD_VAR1, IMP_VAR1, COD_VAR2, IMP_VAR2, COD_VAR3, IMP_VAR3, COD_VAR4, IMP_VAR4, COD_VAR5, IMP_VAR5, COD_VAR6, IMP_VAR6, COD_VAR7, IMP_VAR7, COD_VAR8, IMP_VAR8, COD_VAR9, IMP_VAR9, COD_VA10, IMP_VA10, COD_VA11, IMP_VA11, COD_VA12, IMP_VA12, COD_VA13, IMP_VA13, COD_VA14, IMP_VA14, COD_VA15, IMP_VA15) VALUES".$val.";";
sc_exec_sql($sql, "conn_mysql");
Mario Greco
Re: Errore Mysql dopo migrazione a php 8.1
Ciao,
il nome della variabile nel metodo sc_exec_sql è errato: prova a sostituirlo con $sq, o viceversa cambia il nome della variabile in $sql.
$sq="ALTER TABLE $dbnm.import_arco_tmp AUTO_INCREMENT = 2;";
sc_exec_sql($sql, "conn_mysql");
il nome della variabile nel metodo sc_exec_sql è errato: prova a sostituirlo con $sq, o viceversa cambia il nome della variabile in $sql.
$sq="ALTER TABLE $dbnm.import_arco_tmp AUTO_INCREMENT = 2;";
sc_exec_sql($sql, "conn_mysql");
Re: Errore Mysql dopo migrazione a php 8.1
Ciao Fabio,
grazie è stata una svista che però non cambia il risultato nel senso che con l'errore non esegue l'ALTER TABLE ma esegue due volte il TRUNCATE per cui al massimo mi troverei un id incrementale ad ogni importazione invece che riparte da 2 ogni volta.
Credo di essere incappato in una di quelle anomalie inspiegabili. Nel week end provo a rifare il server e reinstallare da zero
grazie è stata una svista che però non cambia il risultato nel senso che con l'errore non esegue l'ALTER TABLE ma esegue due volte il TRUNCATE per cui al massimo mi troverei un id incrementale ad ogni importazione invece che riparte da 2 ogni volta.
Credo di essere incappato in una di quelle anomalie inspiegabili. Nel week end provo a rifare il server e reinstallare da zero
Mario Greco
Re: Errore Mysql dopo migrazione a php 8.1
[risolto]
Ho rifatto il server e adesso funziona... Lo metto nella collezione dei misteri ...
Scusate se ho aperto un post che in realtà non c'entrava
Ho rifatto il server e adesso funziona... Lo metto nella collezione dei misteri ...
Scusate se ho aperto un post che in realtà non c'entrava
Mario Greco
-
- Messaggi: 15
- Iscritto il: 07 apr 2020, 12:08
Re: Errore Mysql dopo migrazione a php 8.1
Ciao a tutti
Ho un problema simile, quando inserisco una masco sc_select in una funzione php ottengo questo errore:
Fatal error: Uncaught TypeError: mysqli_close()" più altri riferimenti ai file php.
Mi succede nelle applicazioni Dialog dopo che ho effettuato il submit.
La query funziona correttamente ma mi appare comunque questo errore.
Ho provato anche a inserire il codice proposto per sc_select negli esempi a fianco della finestra del codice, non ho nemmeno cambiato la stringa della query e non ho nemmeno effettuato la chiamata alla funzione in nessuna parte del codice dell'applicazione.
Quanto effettuato il submit boom mi salta fuori l'errore nel footer.
Questo succede da quando sono migrato a 8.1.
Potete aiutarmi, fra 20 giorni quando scade la prova dell'8.1 devo abbandonare il vecchio 7.3 funzionante!
Ho un problema simile, quando inserisco una masco sc_select in una funzione php ottengo questo errore:
Fatal error: Uncaught TypeError: mysqli_close()" più altri riferimenti ai file php.
Mi succede nelle applicazioni Dialog dopo che ho effettuato il submit.
La query funziona correttamente ma mi appare comunque questo errore.
Ho provato anche a inserire il codice proposto per sc_select negli esempi a fianco della finestra del codice, non ho nemmeno cambiato la stringa della query e non ho nemmeno effettuato la chiamata alla funzione in nessuna parte del codice dell'applicazione.
Quanto effettuato il submit boom mi salta fuori l'errore nel footer.
Questo succede da quando sono migrato a 8.1.
Potete aiutarmi, fra 20 giorni quando scade la prova dell'8.1 devo abbandonare il vecchio 7.3 funzionante!
-
- Messaggi: 15
- Iscritto il: 07 apr 2020, 12:08
Re: Errore Mysql dopo migrazione a php 8.1
Ho risolto il problema cancellandolo la connessione e riconfigurandola.
Chi c’è in linea
Visitano il forum: Ahrefs [Bot], Google [Bot] e 10 ospiti