Visualizzazione dei risultati da 1 a 7 su 7
  1. #1

    Salvataggio record doppio

    Salve, ho un problema che mi stà facendo scoppiare la testa...

    In locale ho creato uno script per registrare dei dati nelle tabelle , e funziona tutto perfettamente.

    In remoto invece per la stessa procedura, mysql mi salva due record identici!!!
    Com'è possibile?

    Spero in una risposta

  2. #2
    senza codice non si va lontano....


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

  3. #3
    il problema non è il codice, perchè in locale funziona benissimo... comunque


    $db_host = "localhost";
    $db_user = "user";
    $db_password = "password";
    $db_name = "database";
    $db = mysql_connect ($db_host, $db_user, $db_password);
    if ($db == FALSE ) die ("Errore nella connessione. Verificare i parametri nel file") ;
    mysql_select_db($db_name, $db) or die ( "Errore nella selezione del Database!");

    $query = "INSERT INTO `tabella` ( `id` , `campo1` , `campo2`, `campo3` , `campo4` , `campo5` ,`campo6` ,`campo7`) VALUES ( '','$var1', '$var2', '$var3','$var4','$var5','$var6','$var7');";
    if (!mysql_query($query,$db)) { echo "errore nel salvare i dati";}

    io credo che il problema sia un'impostazione sbagliata del database mysql remoto...

  4. #4
    eccomi di nuovo, mi sono collegato al server remoto per scoprire qual'è il problema, innanzi tutto ho fatto la prova a duplicare una tabella:

    CREATE TABLE `Sql88100_1`.`copia` (

    `user_id` mediumint( 8 ) unsigned NOT NULL AUTO_INCREMENT ,
    `user_name` varchar( 20 ) NOT NULL default '',
    `user_username` varchar( 20 ) NOT NULL default '',
    `user_passwd` varchar( 32 ) NOT NULL default '',
    PRIMARY KEY ( `user_id` ) ,
    UNIQUE KEY `user_username` ( `user_username` )
    ) ENGINE = MYISAM AUTO_INCREMENT = 4DEFAULT CHARSET = latin1

    ma mi ha dato questo errore:

    Messaggio di MySQL:

    #1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '4DEFAULT CHARSET = latin1' at line 6


    in parole povere ha dei problemi con il valore auto_increment , dovrebbe essere = 4 menre invece carica il valore 4DEFAULT generando un errore...
    chi mi da una mano per favore

  5. #5
    Originariamente inviato da bingo
    ) ENGINE = MYISAM AUTO_INCREMENT = 4DEFAULT CHARSET = latin1

    ma mi ha dato questo errore:

    Messaggio di MySQL:

    #1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '4DEFAULT CHARSET = latin1' at line 6


    in parole povere ha dei problemi con il valore auto_increment , dovrebbe essere = 4 menre invece carica il valore 4DEFAULT generando un errore...
    chi mi da una mano per favore
    manca uno spazio....

    ) ENGINE = MYISAM AUTO_INCREMENT = 4 DEFAULT CHARSET = latin1


    non c'e' una impostazione che duplica i record, ma solo il ripetere due volte la query.

    ovviamente troverai solo gli id non duplicati. giusto?

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

  6. #6
    giusto, ma ripeto in locale non ho questo problema.

    ho ricontrollato il codice , ma non ci sono errori che fanno fare la stessa operazione due volte.

  7. #7
    le versioni di mysql sono le stesse?

    per mettere due record bisogna fare due queries. Su questo non ci piove. anche eseguendo due volte la pagina.... mica deve essere nello script.

    Non c'entra, ma personalmente non piace l'uso di if(!mysql_query). mi piace poter gestire da me l'output ricevuto.... con if = TRUE potrebbero essere da 1 a infinito i record inseriti

    per esempio:

    codice:
    $query = "INSERT INTO `tabella` (
                `id` , `campo1` , `campo2`, `campo3` , `campo4` , `campo5` ,`campo6` ,`campo7`) 
                 VALUES ( '', '$var1', '$var2', '$var3', '$var4','$var5','$var6', '$var7')";
    
    $res = mysql_query($query,$db) or die (mysql_error());
    
    if ($res == 1) { echo "Inserito $res record. Record id " . mysql_insert_id();
          }  else { echo "Query non corretta. Inserito $res record
    ";
    Ovviamente tanto per esempio....

    da tener presente nelle ultime versioni di mysql l'impostazione sul server di sql-mode.

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