Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11
  1. #1

    Problema con INT e VALUE con MySQL

    Buon pomeriggio,
    allora, su ARUBA la tabella di MYSQL è messo così:


    ID -> INT(100) PRIMARY - AUTOCREMENT
    TITOLO -> VARCHAR(100)
    DISPONIBILE -> INT(100)


    HTML


    codice HTML:
    <input type="text" name="titolo">
    <input type="checkbox" name="disponibile" value="1">
    <input type="submit" name="ps_pulsante" value="Registra">
    
    PHP
    Codice PHP:

    $query 
    "INSERT INTO prova (titolo, disponibile) VALUES ('"$_REQUEST['titolo'] ."', '"$_REQUEST['disponibile'] ."')";
    mysqli_query($connessione$query); 
    Registra tutto regolarmente, ad esempio se non punto il check su DISPONIBILE, rimane 0 come default, se punto diventa 1


    Ma esportando il file SQL dal database phpmyadmin MySQL Aruba e lo importo phpmyadmin MySQL XAMPP e usando la stessa variabile, mi da errore


    Incorrect integer value: '' for column `prova`.`dati`.`disponibile` at row 1


    Perchè?


    Perchè per forza devo fare la IF che se puntato DISPONIBILE registra 1 se non puntato registra 0 e inoltre perchè sul campo TITOLO devo impostare NULL per forza?


    E' strano perchè sul database phpmyadmin MySQL sui server CONTABO, OVH, REGISTER e ARUBA non hanno mai avuto questi problemi....


    Ho fatto anche un confronto con il database sviluppato WORDPRESS è uguale al mio...senza mettere per forza NULL nè la IF DISPONIBILE tipo:


    Codice PHP:

    if($_REQUEST['disponibile'] == "")
    {


    $disponibile 0;


    } else
    if(
    $_REQUEST['disponibile'] == 1)
    {


    $disponibile 1;




  2. #2
    Utente di HTML.it L'avatar di boots
    Registrato dal
    Oct 2012
    Messaggi
    1,626
    Potrebbe dipendere dalla versione differente di mysql/mariadb, tra la tua e quella degli host (che potrebbe essere più vecchia).
    In fondo stai passando disponibilità come stringa (mettendola tra gli apici) invece nel db è un intero. Fermo restando che un controllo lo metterei sempre (poi dipende anche da chi usa l'applicativo), togli gli apici nella insert per il valore di disponibilità
    Ultima modifica di boots; 07-01-2021 a 17:09

  3. #3
    E quindi? Cosa devo fare? Come posso risolvere questo problema?

    Intendi che gli HOST sono vecchi? Quello che ho installato XAMPP e nuova e ultima?

    Perdonami la mia ignoranza, come tolgo gli apici e come metto al posto degli apici?

  4. #4
    Utente di HTML.it L'avatar di boots
    Registrato dal
    Oct 2012
    Messaggi
    1,626
    Scusami...non avevo letto bene il problema,gli apici non c'entrano nulla
    Come detto, al 99% è un problema di versioni differenti o conf differenti...prova a vedere qua

    https://hoststud.com/resources/resol...-at-row-1.493/

  5. #5
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,445
    Io gli apici a "disponibile" li toglierei comunque
    Codice PHP:
    $query "INSERT INTO prova (titolo, disponibile) VALUES ('"$_REQUEST['titolo'] ."', "$_REQUEST['disponibile'] .")"
    e come ti ho suggerito nell'altro post, anche se non è da questo che dipende il problema, invece del generico $_REQUEST['...'], usa il più specifico $_POST['...'] o $_GET['...'] a seconda del method che hai impostato nel form.

  6. #6
    Grande!!!! Ora funziona.....

    Quindi non è il problema di versione ma la configurazione con SQL_MODE..

    Ma poi, una domanda...in futuro se aprissi un'altro dominio ad esempio, un server diverso e avrà lo stesso problema, poi come potrò configurare abilitando la funziona SQL_MODE?

    Quote Originariamente inviata da boots Visualizza il messaggio
    Scusami...non avevo letto bene il problema,gli apici non c'entrano nulla
    Come detto, al 99% è un problema di versioni differenti o conf differenti...prova a vedere qua

    https://hoststud.com/resources/resol...-at-row-1.493/

  7. #7
    Utente di HTML.it L'avatar di boots
    Registrato dal
    Oct 2012
    Messaggi
    1,626
    In realtà non dovresti modificare la configurazione del db (anche perchè potresti non farlo)...ma scrivere una query che sia più aderente possibile allo standard sql. Tipo in questo caso, se devi passare un intero non metterlo tra apici...e se non c'è non metterlo.
    In questo senso ti potrebbero aiutare molto i prepared statement + bind dei valori di PDO/Mysqli

  8. #8
    Ciao, avevo provato a mettere REQUEST in POST o GET lo fa lo stesso errore...

    Quote Originariamente inviata da Alhazred Visualizza il messaggio
    Io gli apici a "disponibile" li toglierei comunque
    Codice PHP:
    $query "INSERT INTO prova (titolo, disponibile) VALUES ('"$_REQUEST['titolo'] ."', "$_REQUEST['disponibile'] .")"
    e come ti ho suggerito nell'altro post, anche se non è da questo che dipende il problema, invece del generico $_REQUEST['...'], usa il più specifico $_POST['...'] o $_GET['...'] a seconda del method che hai impostato nel form.

  9. #9
    SI è vero, però perdoname che insisto...

    Come ha fatto WORDPRESS?
    Importando il DB su MYSQL e le variabili sono gli stessi di quelli che ho impostato io e come è possibile che funziona senza cambiare SQL_MODE?


    Quote Originariamente inviata da boots Visualizza il messaggio
    In realtà non dovresti modificare la configurazione del db (anche perchè potresti non farlo)...ma scrivere una query che sia più aderente possibile allo standard sql. Tipo in questo caso, se devi passare un intero non metterlo tra apici...e se non c'è non metterlo.
    In questo senso ti potrebbero aiutare molto i prepared statement + bind dei valori di PDO/Mysqli

  10. #10
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,445
    Quote Originariamente inviata da z.cristiano Visualizza il messaggio
    Ciao, avevo provato a mettere REQUEST in POST o GET lo fa lo stesso errore...
    Te l'ho scritto che non dipendeva da qello il tuo errore, ma è una cosa che dovresti comunque modificare.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.