Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 13
  1. #1
    Utente di HTML.it L'avatar di LuckySevenRoX
    Registrato dal
    Sep 2011
    residenza
    Foligno
    Messaggi
    361

    UPDATE con mysqli non funziona

    Salve a tutti, sto progettando un'applicazione Facebook che fa uso di database, solo che ho un problema stranissimo:

    su un codice del genere

    codice:
    ... connessione al db ...
    
    $mysqli->query("INSERT INTO ...");
    if ($var_booleana) {
        $mysqli->query("UPDATE ...");
        echo "UPDATE ...";
    }
    Allora, mi connetto correttamente al DB e effettuo sempre correttamente l'INSERT, la $var_booleana mi restituisce true e entro nell'if.
    Lì faccio l'UPDATE che NON avviene, ma non c'è nessun errore di sintassi infatti sotto faccio l'echo della stessa stringa e la inserisco manualmente nel DB e funziona.

    Può essere un problema di permessi sul DB? Sono su hosting aruba (ma tanto dovrò spostarmi per il certificato SSL), ma non ho mai avuto problemi di permessi. Da cosa può dipendere?
    Ti rivedrò in un'altra vita…quando saremo tutti e due gatti...

  2. #2
    Utente di HTML.it L'avatar di Virus_101
    Registrato dal
    Sep 2008
    Messaggi
    2,497
    puo' essere che la riga non eista.
    Se non ci sono errori di sintassi non vuol dire necessariamente che la query sia corretta .

    controlla di identificare correttamente la riga da aggiornare.
    Puoi farlo con una select preventiva o altri modi piu' raffinati ...

    Controlla il risultato dalla query e le mysql_affected_rows($conn) se effettivamente la query ha modificato qualcosa.

  3. #3
    Utente di HTML.it L'avatar di LuckySevenRoX
    Registrato dal
    Sep 2011
    residenza
    Foligno
    Messaggi
    361
    Ciao, come ti dicevo ho stampato tramite echo la stringa di UPDATE proprio per testarla manualmente tramite phpMyAdmin e vedere se restituiva qualche errore.. ma invece, la stessa identica riga passata al metodo query, tramite phpmyadmin funziona ma tramite php no.
    Non è una prova già sufficiente per vedere se la query contiene tutte le info necessarie?

    tra l'altro la riga dove deve fare l'update già esiste nel database, nemmeno a dire che può essere una conseguenza di un insert andato male!
    Ti rivedrò in un'altra vita…quando saremo tutti e due gatti...

  4. #4
    Utente di HTML.it L'avatar di Virus_101
    Registrato dal
    Sep 2008
    Messaggi
    2,497
    esegui controllo con mysql_affected_rows($conn)

    sicoro di committare le query ?

    (perche' usi mysqli ? )

  5. #5
    Utente di HTML.it L'avatar di LuckySevenRoX
    Registrato dal
    Sep 2011
    residenza
    Foligno
    Messaggi
    361
    il commit dovrebbe farlo in automatico no? nel senso, se la insert la prende correttamente, perchè l'update non dovrebbe farlo?
    Uso mysqli per abitudine, ho abbandonato da un pò le altre funzioni

    cmq ora faccio qualche test, se ti viene in mente altro fammi sapere
    Ti rivedrò in un'altra vita…quando saremo tutti e due gatti...

  6. #6
    Utente di HTML.it L'avatar di LuckySevenRoX
    Registrato dal
    Sep 2011
    residenza
    Foligno
    Messaggi
    361
    affected_rows ovviamente restituisce 0, ho provato a forzare il commit e a settare autocommit su true ma ancora niente!
    Ti rivedrò in un'altra vita…quando saremo tutti e due gatti...

  7. #7
    Utente di HTML.it L'avatar di Virus_101
    Registrato dal
    Sep 2008
    Messaggi
    2,497
    Eccomi ero a pranzo

    Cmq Auto committ e' di default settato a true in modo che le query vengano eseguite immediatamente.
    Puoi gestire le transazioni resettando auto committ e quindi committare come meglio ti pare .
    Ma non credo sia li il problema.

    Se mysql affected rows == 0 allora vuol dire che non ha modificato nulla.

    - problema nella query
    - sti usando una connessione errata.

    SOno i problemi piu' comuni.

    Rendi il piu' verboso possibile il codice stampando la query , le vars etc... solitamente succede per una svista su 1 var

  8. #8
    Utente di HTML.it L'avatar di LuckySevenRoX
    Registrato dal
    Sep 2011
    residenza
    Foligno
    Messaggi
    361
    risolto, stavo lavorando su una vecchia versione della tabella e mancava un campo e quando facevo le prove di inserimento le facevo su quella nuova, ecco perchè funzionavano.. sono un tonno sorry! grazie dell'aiuto comunque
    Ti rivedrò in un'altra vita…quando saremo tutti e due gatti...

  9. #9
    Utente di HTML.it L'avatar di Virus_101
    Registrato dal
    Sep 2008
    Messaggi
    2,497
    Nesun problema succede a tutti me compreso
    E' sempre esperienza

  10. #10
    Utente di HTML.it
    Registrato dal
    Nov 2007
    Messaggi
    24
    Ciao a tutti.
    Ho anch'io un problema con mysqli update.
    Lo sto postando qui perchè dalla ricerca questa è la discussione più recente.
    Uso questo codice:

    codice:
    $link = mysqli_connect("sql", "user", "pass", "tabella");
    
    mysqli_query($link, "UPDATE post SET titolo_post='$titolo' WHERE id_post = '$id'");
    printf("Affected rows (UPDATE): %d\n", mysqli_affected_rows($link));
    
    @mysqli_close($link);
    Mi stampa a video: Affected rows (UPDATE): 1
    ma non avviene nessuna modifica.

    Grazie in anticipo a chi vuol darmi una mano

    P.S. Conoscenza html discreta, php sufficiente, mysql scarsa

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.