Visualizzazione dei risultati da 1 a 8 su 8
  1. #1
    Utente di HTML.it L'avatar di Mr.Steve
    Registrato dal
    Jul 2012
    Messaggi
    29

    [MYSQL][PHP]Problema inserimento dati in database

    Salve ragazzi.
    Sono qui per chiedervi un favore.
    Ho creato una pagina con dentro un form e un codice PHP dove in teoria dovrebbe mandare dei dati al database MySQL.
    Premetto che il codice PHP funziona e che il collegamento al database è corretto, il problema è che non invia dati nel database.

    Vi posto il codice e la tabella del database:
    http://pastebin.com/MfbDyXkm
    codice:
    lista_membri:
    -id* (INT 11)
    -nickname (VARCHAR 100)
    -nome (VARCHAR 20)
    -cognome (VARCHAR 20)
    Quando faccio i test non riesce a inserire i dati e mi da l'errore "Errore nell'inserimento".

    Cosa devo fare? Può essere legato più al codice PHP oppure a PhpMyAdmin?

  2. #2
    stampa l'eventuale errore

    $insmembri = mysql_query("INSERT INTO lista_membri (nickname, nome, cognome)
    VALUES ('$nickname', '$nome', '$cognome')") or die(mysql_error());

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  3. #3
    Utente di HTML.it L'avatar di Mr.Steve
    Registrato dal
    Jul 2012
    Messaggi
    29
    Dopo aver inserito altri dati mi da questo errore: Duplicate entry '0' for key 'PRIMARY'
    Questo ora è un problema di PHPMyAdmin.

  4. #4
    Quote Originariamente inviata da Mr.Steve Visualizza il messaggio
    Dopo aver inserito altri dati mi da questo errore: Duplicate entry '0' for key 'PRIMARY'
    Questo ora è un problema di PHPMyAdmin.
    Che c'entra Phpmyadmin. E' un problema di chiave primaria. Se vuoi utilizzare l'id con autoincrement dovresti settare il campo id come NULL

    codice:
    $insmembri = mysql_query("INSERT INTO lista_membri (id, nickname, nome, cognome) 
           VALUES (NULL, '$nickname', '$nome', '$cognome')")  or die(mysql_error());
    in questo modo verra' incrementato l'id senza avere valori duplicati


    edit@ ma che razza di forum e' mai questo che non formatta correttamente il code.
    continuo a pensare che era molto meglio quando era peggio.
    Ultima modifica di piero.mac; 09-03-2014 a 12:02

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  5. #5
    Utente di HTML.it L'avatar di Mr.Steve
    Registrato dal
    Jul 2012
    Messaggi
    29
    Altro errore: Column 'id' cannot be null

  6. #6
    Quote Originariamente inviata da Mr.Steve Visualizza il messaggio
    Altro errore: Column 'id' cannot be null
    Se cerchi di inserirlo con una finestra di inserimento di phpmyadmin puo' essere che non ci riesci. Oppure l'id non e' autoincrement. Sinceramente non capisco come phpmyadmin gestisca l'autoincrement ma mi sembra ben poco intelligente.

    comunque: questa query di prova
    INSERT INTO `test`.`archivio` (`id`, `data`, `fascia`, `dati`) VALUES (NULL, '2014-03-08', '2', 'ciccio');

    funziona sia con phpmyadmin che con sql tramite php o shell.

    La tabella definita e':

    archivio CREATE TABLE `archivio` (
    `id` tinyint(2) unsigned NOT NULL AUTO_INCREMENT,
    `data` date NOT NULL,
    `fascia` tinyint(2) unsigned NOT NULL,
    `dati` varchar(10) CHARACTER SET utf8 NOT NULL,
    PRIMARY KEY (`id`)
    ) ENGINE=InnoDB AUTO_INCREMENT=17 DEFAULT CHARSET=utf8

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  7. #7
    Utente di HTML.it L'avatar di Mr.Steve
    Registrato dal
    Jul 2012
    Messaggi
    29
    Ho cancellato la tabella e l'ho ricreata seguendo il tuo esempio tramite SQL
    codice:
    CREATE TABLE `lista_membri` (
    `id` tinyint(2) unsigned NOT NULL AUTO_INCREMENT,
    `nickname` varchar(100) NOT NULL,
    `nome` varchar(20) CHARACTER SET utf8 NOT NULL,
    `cognome` varchar(20) CHARACTER SET utf8 NOT NULL,
    PRIMARY KEY (`id`)
    ) ENGINE=privato AUTO_INCREMENT=0 DEFAULT CHARSET=utf8
    Funziona tutto. Grazie mille

  8. #8
    occhio che l'id impostato come tinyint unsigned ti copre solo da 0 a 255 (1 byte) ... metti un INT(10) unsigned pesa 4 byte ma non ti si riavvolge il contatore a 255....

    ciao, buon lavoro

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

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 © 2026 vBulletin Solutions, Inc. All rights reserved.