Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it
    Registrato dal
    Apr 2007
    Messaggi
    764

    Problema query... forse per passaggio da MySQL4 a MySQL5

    Ho creato un database in MySQL nella versione 4, su un server provvisorio, che uso per lo sviluppo... e funziona tutto.
    Adesso ho spostato il database sul server definitivo (che ha installato MySQL 5), ma diverse query mi restituiscono dei messaggi di errore.

    Ho, per esempio, questa query di aggiornamento:

    sqlString = "UPDATE partecipanti SET " &_
    "nome='"& CorreggiVirgolette(cognome) & "', "&_
    "cognome='"& CorreggiVirgolette(cognome) & "', "&_
    "descrizione='"& CorreggiVirgolette(descrizione) & "', "&_
    "img='"& CorreggiVirgolette(trim(img)) & "', "&_
    "protagonista='"& CorreggiVirgolette(trim(protagonista)) & "', "&_
    "pos='"& CorreggiVirgolette(trim(pos)) & "', "&_
    "voti="& CorreggiVirgolette(trim(voti)) & ", "&_
    "blog='"& CorreggiVirgolette(trim(blog)) & "', "&_
    "attiva='" & attiva & "' WHERE " &_
    "id=" & id

    Che, una volta lanciata, mi dà questo errore:
    Microsoft OLE DB Provider for ODBC Drivers error '80040e14'

    [MySQL][ODBC 3.51 Driver][mysqld-5.0.45-community-nt]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 ' blog='', attiva='1' WHERE id=268' at line 1

    /admin/partecipanti/gestione_partecipanti.asp, line 83

    Alla riga 83 del file gestione_partecipanti.asp c'è Conn.Execute sqlString.

    Ho provato a stampare a video la query:
    UPDATE partecipanti SET nome=';Maria', cognome='', descrizione='Inserire una descrizione della ragazza', img='maria.jpg', protagonista='protagonista', pos='1', voti=, blog='', attiva='1' WHERE id=268

    Temo che il problema sia legato alla diversa versione di MySQL, ma non so proprio cosa modificare...

  2. #2
    UPDATE partecipanti SET nome=';Maria', cognome='', descrizione='Inserire una descrizione della ragazza', img='maria.jpg', protagonista='protagonista', pos='1', voti=, blog='', attiva='1' WHERE id=268


    Allora, se leggi attentamente l'errore, già li ti dice dove guardare.
    voti = , ... dove voti sarà sicuramente un campo integer o double NOT NULL e che nn accetta il valore che tu gli stai dando....

    prova a modificare e testare la stringa con voti = 0 .....

  3. #3
    Utente di HTML.it
    Registrato dal
    Apr 2007
    Messaggi
    764
    Grazie per la risposta.

    Il campo voti è di tipo INT, con valore predefinito 0.

    Questo database, così com'è, mi funzionava su un altro server... ma forse era strano che funzionasse di là!!!

    Ho controllato la query e c'erano degli errori...
    I voti vengono inseriti nel db tramite un altro form, ho tolto dalla query "voti", perché in questo modo avrei aggiornato il campo voti, cancellandone il valore (almeno credo).

    Adesso la query è così:

    sqlString = "UPDATE partecipanti SET " &_
    "nome='"& CorreggiVirgolette(nome) & "', "&_
    "cognome='"& CorreggiVirgolette(cognome) & "', "&_
    "descrizione='"& CorreggiVirgolette(descrizione) & "', "&_
    "img='"& CorreggiVirgolette(trim(img)) & "', "&_
    "protagonista='"& CorreggiVirgolette(trim(protagonista)) & "', "&_
    "pos='"& CorreggiVirgolette(trim(pos)) & "', "&_
    "blog='"& CorreggiVirgolette(trim(blog)) & "', "&_
    "attiva=" & attiva & " WHERE " &_
    "id=" & id

    Adesso funziona...

  4. #4
    io solitamente evito di diventare cretino con sql.
    Mi scrivo direttamente nel pannello di sqlYog l' SQL, direttamente su mysql server, e lo lancio. da li mi controllo il tutto e solo alla fine la vado a mettere su ASP.

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.