PROBLEMA Problemi su hosting Aruba

personalele

Nuovo Utente
51
10
Salve a tutti,
ho un sito in sviluppo e "test" su tre hosting diversi: locale (funziona tutto), Keliweb (funziona tutto), Aruba....non ho capito che problema ha.
Nella precedente versione caricata funzionava anche su aruba, poi ho continuato lo sviluppo e testato localmente funziona, caricato su dominio keliweb funziona, su aruba riesco a modificare i record esistenti ma non ad inserirne di nuovi, ma non ricevo alcun errore ne di DB ne da PHP (ho abilitato la visualizzazione degli errori). Stesso codice, stesso DB. Come posso fare a capire cosa non va? E' possibile fare il debug del codice PHP online come per quello locale? (attualmente sto usando netbeans)
Attendo una vostra illuminazione e vi ringrazio anticipatamente!!!!
Gabriele.
 

alemian95

Utente Attivo
1,173
370
CPU
13600K
Dissipatore
Thermalright Peerless Assassin 120 SE
Scheda Madre
MSI PRO Z790-P WIFI ATX
HDD
WD Black 1TB SN850X
RAM
Kingston Fury Renegade DDR5 Silver 32GB 6400MT/s CL32
GPU
Gigabyte RTX 4070 Ti GAMING OC 12G
Monitor
BenQ MOBIUZ EX3415R
PSU
Thermaltake Toughpower GF3 750W
Case
NZXT H5 Flow
Periferiche
Mouse: Logitech G403 - Tastiera: Durgod Taurus K320
Net
FTTC 100 mega
OS
Windows 11 Home 64 bit
La query di inserimento viene generata dal codice php?
Se si io proverei a stamparla, o visualizzarla con il debug e copiarla per inserirla manualmente in phpmyadmin di aruba. Di solito se c'è un errore nella query, phpmyadmin te lo visualizza subito.
 

Ibernato

Utente Èlite
4,330
2,047
OS
Windows 10 Pro / Ubuntu 22.04
Salve a tutti,
ho un sito in sviluppo e "test" su tre hosting diversi: locale (funziona tutto), Keliweb (funziona tutto), Aruba....non ho capito che problema ha.
Nella precedente versione caricata funzionava anche su aruba, poi ho continuato lo sviluppo e testato localmente funziona, caricato su dominio keliweb funziona, su aruba riesco a modificare i record esistenti ma non ad inserirne di nuovi, ma non ricevo alcun errore ne di DB ne da PHP (ho abilitato la visualizzazione degli errori). Stesso codice, stesso DB. Come posso fare a capire cosa non va? E' possibile fare il debug del codice PHP online come per quello locale? (attualmente sto usando netbeans)
Attendo una vostra illuminazione e vi ringrazio anticipatamente!!!!
Gabriele.
Hai provato a vedere nell'ispeziona di google chrome, tab network, e vedere le richieste alla pagine php cosa danno in output? Immagino che l'insert lo fai chiamando una pagina, per esempio, prova.php. Ora al momento dell'insert, nella tab network ti apparirà questa pagina. Cliccaci sopra e vedi nella tab reponse se esce qualche errore
 
Ultima modifica:

personalele

Nuovo Utente
51
10
La query di inserimento viene generata dal codice php?
Se si io proverei a stamparla, o visualizzarla con il debug e copiarla per inserirla manualmente in phpmyadmin di aruba. Di solito se c'è un errore nella query, phpmyadmin te lo visualizza subito.
Ciao @alemian95,
la query è generata da php con oop PDO->prepare / PDO->execute.
Non riesco a provare esattamente la query, ma la domanda è: perchè su DB altro hosting funziona; sempre mysql, stesso php (e quindi stessa query, stessa struttura db) e, soprattutto, non riesco ad intercettare errori?
Ti ringrazio per l'interessamento, spero che arriveremo alla soluzione.
Gabriele.
 

personalele

Nuovo Utente
51
10
Credo di aver capito il problema...ora, però, ho bisogno della soluzione :(
ricevo l'errore 'General error: 1366 Incorrect integer value: '' for column' per ogni campo del form lasciato vuoto associato ad un campo non numerico del db. Si tratta della modalità "STRICT" di mysql che vieta l'utilizzo di pratiche non "best practices" generando errori. Ora:
1) è sconsigliato disabilitare tale modalità, ma in caso non riesco a trovare una soluzione migliore, come faccio ad impostare la modalità "normale" di mysql su hosting Aruba?

2) poichè non posso/voglio memorizzare il valore 0 per ogni campo numerico non valorizzato dall'utente, come posso fare?

Grazie per tutti i suggerimenti,
Gabriele.
 

Ibernato

Utente Èlite
4,330
2,047
OS
Windows 10 Pro / Ubuntu 22.04
Credo di aver capito il problema...ora, però, ho bisogno della soluzione :(
ricevo l'errore 'General error: 1366 Incorrect integer value: '' for column' per ogni campo del form lasciato vuoto associato ad un campo non numerico del db. Si tratta della modalità "STRICT" di mysql che vieta l'utilizzo di pratiche non "best practices" generando errori. Ora:
1) è sconsigliato disabilitare tale modalità, ma in caso non riesco a trovare una soluzione migliore, come faccio ad impostare la modalità "normale" di mysql su hosting Aruba?

2) poichè non posso/voglio memorizzare il valore 0 per ogni campo numerico non valorizzato dall'utente, come posso fare?

Grazie per tutti i suggerimenti,
Gabriele.
Non puoi mettere che quel campo è NULL?
 

alemian95

Utente Attivo
1,173
370
CPU
13600K
Dissipatore
Thermalright Peerless Assassin 120 SE
Scheda Madre
MSI PRO Z790-P WIFI ATX
HDD
WD Black 1TB SN850X
RAM
Kingston Fury Renegade DDR5 Silver 32GB 6400MT/s CL32
GPU
Gigabyte RTX 4070 Ti GAMING OC 12G
Monitor
BenQ MOBIUZ EX3415R
PSU
Thermaltake Toughpower GF3 750W
Case
NZXT H5 Flow
Periferiche
Mouse: Logitech G403 - Tastiera: Durgod Taurus K320
Net
FTTC 100 mega
OS
Windows 11 Home 64 bit
2) poichè non posso/voglio memorizzare il valore 0 per ogni campo numerico non valorizzato dall'utente, come posso fare?
L'unica cosa che mi viene in mente al momento è provare ad entrare nelle impostazioni della tabella e impostare NULL come valore di default per i campi ai quali non vuoi dare un valore.
 

Moffetta88

Moderatore
Staff Forum
Utente Èlite
20,558
12,947
CPU
i5-4690
Dissipatore
DEEPCOOL CAPTAIN 240EX
Scheda Madre
MSI Z97 U3 PLUS
HDD
KINGSTON SSD KC400 240GB
RAM
24GB BALLISTIX SPORT @2133MHz
GPU
STRIX GTX980 DC2OC
Audio
INTEGRATA
Monitor
AOC G2590VXQ
PSU
BEQUIET! System Power 7 500W
Case
DEEPCOOL MATREXX 55
Periferiche
NESSUNA
Net
EOLO 100
OS
UBUNTU/WINDOWS11
Perchè non usare nelle query il NULLIF ?
La funzione NULLIF ha bisogno due parametri, i quali se sono uguali restituisce NULL
Esempio:
SELECT NULLIF(3,3) FROM table ritornerà NULL
SELECT NULLIF(2,3) FROM table ritornerà 2

Quindi puoi creare degli INSERT in cui metti NULLIF e nel caso in cui sia empty inserisce NULL.
Esempio:
INSERT INTO table VALUES (NULLIF('$valore',''))
Se $valore è vuoto allora metterà nel database NULL, altrimenti inserirà correttamente $valore
Altrimenti dei controlli IF/ELSE a livello di backend in cui controlli manualmente se un valore è empty allora deve diventare NULL.
 

Entra

oppure Accedi utilizzando
Discord Ufficiale Entra ora!

Discussioni Simili