Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 12
  1. #1
    Utente di HTML.it
    Registrato dal
    Apr 2018
    Messaggi
    10

    errore nell'istruzione pdo exec

    salve, nell'esecuzione di questa query con pdo exec ho avuto il seguente problema

    Fatal error: Uncaught PDOException: SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'di effettuazione della vaccinazione , tipo di vaccinazione , categoria di rischi' at line 1 in C:\xampp\htdocs\Tesina\vaccine.php:119Stack trace:#0 C:\xampp\htdocs\Tesina\vaccine.php(119): PDO->exec('insert into vac...')#1 {main} thrown in C:\xampp\htdocs\Tesina\vaccine.php on line 119

    questo è il mio codice

    $query1 = ("INSERT INTO vaccini(codPaziente, codDottore, codClinica, data di effettuazione della vaccinazione ,
    tipo di vaccinazione , categoria di rischio ,vaccino fornito da ausl , tipologia di vaccino , nome farmaco ,
    lotto farmaco, note, prestazione) values ('$_COOKIE[idPaziente]', '$_COOKIE[doctor_code]', $_COOKIE[clinic_code]',
    '$dati[data_di_effettuazione_della_vaccinazione]','$dati[tipologia_di_vaccino]','$dati[categoria_di_rischio]',
    '$dati[vaccino_fornito_da_ausl]', '$dati[tipologia_di_vaccino]','$dati[nome_farmaco]','$dati[lotto_farmaco]',
    '$dati[note]','$dati[prestazione]'");

    $return=$conn->exec($query1);

    echo $result;


    $conn = null;

  2. #2
    Sicuramente è presente un apostrofo (') nel valore che stai inserendo, puoi utilizzare la funzione addslashes per correggere il problema

  3. #3
    tip: fatti stampare $query1 prima di eseguirla, così puoi capire dove sta l'errore

  4. #4
    Utente di HTML.it
    Registrato dal
    Apr 2018
    Messaggi
    10
    ok ho trovato l'errore, nella query non accetta gli spazi nei campi per esempio data di effettuazione vaccini deve essere scritto datadieffettuazionevaccini quindi senza spazi

  5. #5
    Utente di HTML.it
    Registrato dal
    Apr 2018
    Messaggi
    10
    anche nei valori che devo inserire nel db non accetta gli spazi, perchè?

  6. #6
    per i campi --> [nome del campo] (anche se è una pratica sbagliatissima)
    per i valori --> 'valore del campo'

  7. #7
    Utente di HTML.it
    Registrato dal
    Apr 2018
    Messaggi
    10
    non si mettono le quadre nel campi e ma si mettono le apici singole che io ho messo ma continua a darmi errori:

    $query1 = ("INSERT INTO vaccini(codPaziente, codDottore, codClinica, dataDiEffettuazioneDellaVaccinazione ,
    tipoDiVaccinazione , categoriaDiRischio ,vaccinoFornitoDaAusl , tipologiaDiVaccino , nomeFarmaco ,
    lottoFarmaco, note, prestazione) values ('$_COOKIE[idPaziente]', '$_COOKIE[doctor_code]', $_COOKIE[clinic_code]',
    '$dati[data_di_effettuazione_della_vaccinazione]','$dati[tipologia_di_vaccino]','$dati[categoria_di_rischio]',
    '$dati[vaccino_fornito_da_ausl]', '$dati[tipologia_di_vaccino]','$dati[nome_farmaco]','$dati[lotto_farmaco]',
    '$dati[note]','$dati[prestazione]'");


    Fatal error: Uncaught PDOException: SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near '', 2018-06-01,'HBVAXPRO','Bambini e adolescenti in trattamento a lungo termine' at line 3 in C:\xampp\htdocs\Tesina\vaccine.php:122Stack trace:#0 C:\xampp\htdocs\Tesina\vaccine.php(122): PDO->exec('INSERT INTO vac...')#1 {main} thrown in C:\xampp\htdocs\Tesina\vaccine.php on line 122

    il suo errore parte dall'inserimento della data perchè i valori con i coockies li prende ma quelli dopo no


  8. #8
    Utente di HTML.it
    Registrato dal
    Apr 2018
    Messaggi
    10
    non si mettono le quadre nel campi e si mettono le apici singole nei valori che io ho messo ma continua a darmi errori

    volevo scrivere questo

  9. #9
    fatti stampare $query e postala che la si controlla

  10. #10
    Utente di HTML.it
    Registrato dal
    Apr 2018
    Messaggi
    10
    ho provato con dei valori più semplici messi da me:

    $ciao=$_POST["mondo"];


    $query1 = ("INSERT INTO vaccini(codPaziente, codDottore, codClinica, dataDiEffettuazioneDellaVaccinazione ,
    tipoDiVaccinazione , categoriaDiRischio ,vaccinoFornitoDaAusl , tipologiaDiVaccino , nomeFarmaco ,
    lottoFarmaco, note, prestazione) values ('1', '12345678', '12345',
    '$ciao','ciao','mondo',
    'si', 'nessuna','qwerty','qwertz',
    'note','ottima'');

    echo $query1;
    $return=$conn->exec($query1);

    questa è la query stampata:
    INSERT INTO vaccini(codPaziente, codDottore, codClinica, dataDiEffettuazioneDellaVaccinazione , tipoDiVaccinazione , categoriaDiRischio ,vaccinoFornitoDaAusl , tipologiaDiVaccino , nomeFarmaco , lottoFarmaco, note, prestazione) values ('1', '12345678', '12345', '2018-06-01','ciao','mondo', 'si', 'nessuna','qwerty','qwertz', 'note','ottima'

    questo è l'errore adesso:
    Fatal error: Uncaught PDOException: SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near '' at line 6 in C:\xampp\htdocs\provafetch.php:22Stack trace:#0 C:\xampp\htdocs\provafetch.php(22): PDO->exec('INSERT INTO vac...')#1 {main} thrown in C:\xampp\htdocs\provafetch.php on line 22

    la linea 22 è la linea in cui eseguo la query e il doppio apice che intende credo sia quello finale della query


Tag per questa discussione

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