Visualizzazione dei risultati da 1 a 8 su 8

Discussione: INSERT con PHP

  1. #1

    INSERT con PHP

    ciao,
    ho un problema con l'istr. in oggetto. ho fatto l'istruzione, eseguo il programma ma ritorna il seguente codice d'errore:

    Error: 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 '1' at line 1

    Però, se poi vado su phpmyadmin, vedo che il dato è stato inserito nonostante si sia verificato l'errore. come posso fare per far in modo che ciò non avvenga? un rollback.
    e poi dove cavolo è l'errore dell'istruzione? ho fatto così:

    $con = mysql_connect("localhost", "root", "user05");
    if (!$con)
    {
    die("Errore di connessione: " . mysql_error());
    }
    else
    {
    echo("CONNESSIONE RIUSCITA
    ");
    echo "
    ";
    }

    mysql_select_db("progetto_prova") or die("Selezione del database 'test' non riuscita");

    $nome = "mario";
    $cognome = "rossi";

    $query = "INSERT INTO pazienti (nome, cognome) VALUES ('$nome', '$cognome')";

    $ris = mysql_query($query) or die("Query fallita - Error: " . mysql_error()."
    ");

    if (!mysql_query($ris))
    {
    die('Error: ' . mysql_error());
    }

    mysql_close($con)


    Che cavolo sbaglio?

    Grazie

    mb

  2. #2
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,505

    Re: INSERT con PHP

    Originariamente inviato da mbonventre
    ...
    $query = "INSERT INTO pazienti (nome, cognome) VALUES ('$nome', '$cognome')";
    ...
    Prova così
    Codice PHP:
    $query "INSERT INTO pazienti (nome, cognome) VALUES ('".$nome."', '".$cognome."')"

  3. #3

    non funziona :-(

    E no, sempre lo stesso: inserisce il dato in tabella però continua a visualizzarmi il messaggio di errore:

    Error: 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 '1' at line 1

    ed ora ho scritto così:

    $query = "INSERT INTO pazienti (nome, cognome) VALUES ('".$nome."', '".$cognome."')";



    mb

  4. #4
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,505
    La cosa strana è che nella tua query sembrerebbe non esserci alcun 1, non so da dove possa arrivargli.

    Prova a stampare con una echo i valori di $nome e $cognome, dovrebbero essere gli unici imputati per quel 1.

    Edit: anzi, commenta la riga del mysql_query ed aggiungi questa:
    echo $query;

    così si vede dove mette quel 1.

  5. #5

    ancora nulla



    nooooo, sto '1' non so proprio cosa sia. ho visto che l'auto increment è arrivato a 12. in tabella però c'è solo l'ultimo perchè ogni volta cancello il record.

    la echo m'ha dato questo... ed è giusto!

    Nome: mario
    Cognome: rossi
    Error: 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 '1' at line 1

    ripeto, il record però viene inserito in tabella. entrambi i campi sono stati creati come char rispettivamente di 15 e 20. su collaction ah messo LATIN1_SWEDISH_CI
    ma non dovrebbe esser questa la causa!




    mb

  6. #6

    forse risolto

    ma può esser questa la causa?????

    prima era scritta così:

    $query = "INSERT INTO pazi.......";

    $ris = mysql_query($query) or die("Query fallita - Error: " . mysql_error()."
    ");

    if (!mysql_query($ris))
    {
    die('Error: ' . mysql_error());
    }
    echo "1 record added";




    HO MODIFICATO ELIMINANDO $query e quindi anche $ris scrivendo così:



    $sql = ""INSERT INTO pazi.......";

    if (!mysql_query($sql))
    {
    die('Error: ' . mysql_error());
    }
    echo "1 record added";


    ed ha funzionato...... MA COME MAI? CHE DIFFERENZA C'E'????

    GRAZIE

    mb

  7. #7
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,505

    Re: forse risolto

    Ma sì, caspita, mica me ne ero accorto!

    Tu facevi così
    Codice PHP:
    $query "INSERT INTO pazi.......";

    $ris mysql_query($query) or die("Query fallita - Error: " mysql_error()."
    "
    ); 
    Hai eseguito la query, ha avuto successo e quindi $ris vale 1

    poi
    Codice PHP:
    if (!mysql_query($ris))
     {
      die(
    'Error: ' mysql_error());
      }
    echo 
    "1 record added"
    esegui di nuovo la query nell'if, ma stavolta la stringa che dovrebbe contenere la query contiene 1, ovvero il valore di $ris.
    l'if doveva essere
    Codice PHP:
    if(!$ris) {
      die(
    'Error: ' mysql_error());
     }
    echo 
    "1 record added"
    Nel secondo caso invece l'insert lo fai correttamente nell'if.

  8. #8

    RISOLTO

    Capito... e questo non mi era proprio chiaro.

    Gentilisssssssimo!!!!

    mb

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.