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

    Una query INSERT migliore

    Mi successo una cosa che mi sembrava fuori da ogni logica.
    In pratica in uno script PHP utilizzavo una query del genere
    codice:
    $sql="insert into tabella values('$a','$b','$c');";
    Una query semplice di inserimento insomma, in realtà la query non aveva soltanto 3 campi da inserire ma bensì 9 ed era su una sola riga. Qui sopra non ho scritto tutte e 9 le variabili per evidenti ragioni. Ebbene la query non veniva eseguita. Tutte le variabili erano definite connessione a MySQL a posto.
    Non so come mi è venuta l'idea ma l'ho semplicemente scritta su più righe; cioè così
    codice:
    $sql="insert into tabella values(
    '$a',
    '$b',
    '$c');";
    E la query funziona. Mi sono detto: forse riscrivendola ho corretto un errore che mi sfuggiva; quindi l'ho rimessa di nuovo su una riga, inutile dirlo NON veniva eseguita.

    Mi sono messo in cerca di uno straccio di informazione per farmene una ragione ma non ho trovato nulla.
    Comunque tralasciamo questo episodio insignificante e veniamo alla query migliore. Forse gia lo sapete ma dalla mi a esperienza da novellino ho capito che è molto meglio scrivere una query di inserimento in questo modo:
    codice:
    $sql="insert into tabella set campo1='$a',campo2='$b',campo3='$c';";
    E' un pò più lunga da scrivere è vero ma persate se dovete aggiungere una colonna ad una tabella ed avete usato la formula che ho scritto all'inizio in diversi script... :rollo:

  2. #2
    questa forma di INSERT e' una variazione allo standard SQL propria di mysql...

    e' comoda per quando si usa una alternativa tra UPDATE e INSERT senza dover costruire una query diversa. Nulla cambia per il resto.

    L'errore che avevi era dovuto a qualcosa di diverso da come era impostata la query.

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

  3. #3

    uhm

    questo è il tuo codice
    codice:
    $sql="insert into tabella values('$a','$b','$c');";
    hai tentato a togliere quel ; che secondo me è in piu? prova ad inserirlo cosi
    codice:
    $sql="insert into tabella values('$a','$b','$c')";

  4. #4
    Quel punto e virgola è superfluo ma NON da errore, me ne sono accorto in molte occasioni.

    Comunque veramente non me ne sono fatto una ragione.

    Scrivo la query (benchè lunga) su una sola riga e non mi viene eseguita; scrivo la stessa identica query su più righe e viene eseguita.

    Non ci provo a capire il perchè.... il risultato è quello che conta grazie cmq.

  5. #5
    una ragione abbastanza plausibile potrebbe essere l'editor che spezza la riga in modo improprio, ma non era questo che volevo dirti... era piuttosto come non ti sia venuto in mente di "stampare" la query per visualizzare di fatto come veniva recepita, e il non avere messo la segnalazione di errore (mysql_error()) che ti avrebbe "illuminato" sul problema.


    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.