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

    Query INSERT con PDO_MySQL

    Salve,
    purtroppo mi trovo ad utilizzare PDO_MySQL al posto di MySQLi e sinceramente riscontro qualche difficoltà. Ad esempio in una query INSERT ho provato qualunque tipo di apice (generalmente quelli che generano gli errori) ma niente, non funge.

    Il codice è il seguente:

    $query = "INSERT INTO `$this->tab_name_temp` (`titolo`, `link`, `prezzo`, `partner`, `check`, `data`) VALUES ('$titolo','$link','$prezzo','$partner',$check','$ ladata')";
    $this->dbh->exec($query);

    Vi ringrazio anticipatamente!

    F.C.

  2. #2
    Utente di HTML.it
    Registrato dal
    Oct 2014
    Messaggi
    539
    proprio perché fonte di guai, toglierei tutti gli apici inutili, ma soprattutto lo spazio che c'è tra $ e ladata,
    quindi
    codice:
    $query = "INSERT INTO $this->tab_name_temp (titolo, link, prezzo, partner, check, data) VALUES ('$titolo','$link','$prezzo','$partner',$check','$ladata')";
    poi bisogna chiarire, la query e la sua esecuzione sono un metodo della classe ?
    nel caso non lo fossero, "$this->" è improprio

  3. #3
    Io faccio così.. Spero possa esserti utile..

    Codice PHP:
    //connetti al db
    include 'connection.php';

    // provi inserimento..  try  {
    // Crei i c.d. " segnaposto "..    $sql = 'INSERT INTO tabella SET            titolo = :titolo,            esempio = :esempio,            esempio2 = :esempio2;    $s = $pdo->prepare($sql);

    // inserisco varie situazioni, sia di dati provenienti da  form che da variabili che numerici..    $s->bindValue(':titolo', $_POST['titolo']);    $s->bindValue(':esempio', $esempio);    $s->bindValue(':esempio2', 15);
        
    $s->execute();  }
    // se ci sono errori..  catch (PDOException $e)  {    $error = 'Errore: ' . $e->getMessage();    include 'ERROR/pagerrore.php';    exit();  } 
    Non capisco perchè qui si vede un pò incasinato, avevo postato tutto in modo molto ordinato..
    Copia il tutto su un editor ed isola i commenti..
    Ultima modifica di otto9due; 02-05-2015 a 01:03

  4. #4
    roprio perché fonte di guai, toglierei tutti gli apici inutili, ma soprattutto lo spazio che c'è tra $ e ladata,quindi
    codice:
    $query = "INSERT INTO $this->tab_name_temp (titolo, link, prezzo, partner, check, data) VALUES ('$titolo','$link','$prezzo','$partner',$check','$ ladata')";
    poi bisogna chiarire, la query e la sua esecuzione sono un metodo della classe ?
    nel caso non lo fossero, "$this->" è improprio
    marino51: si, sono metodi della classe infatti funziona. Il problema era il "check" che nella query viene vista come parametro SQL. Cambiandola in "checks" tutto funziona Adesso il vero problema sono gli apici -> ' <- all'interno delle query. Pensavo che con le nuove librerie PDO_MySql fosse superata la necessità di usare addslashes() o str_replace()
    Ultima modifica di Fede_Rico; 03-05-2015 a 19:33

  5. #5
    Io faccio così.. Spero possa esserti utile..

    Codice PHP:
    //connetti al db
    include 'connection.php';

    // provi inserimento.. try {
    // Crei i c.d. " segnaposto ".. $sql = 'INSERT INTO tabella SET titolo = :titolo, esempio = :esempio, esempio2 = :esempio2; $s = $pdo->prepare($sql);

    // inserisco varie situazioni, sia di dati provenienti da form che da variabili che numerici.. $s->bindValue(':titolo', $_POST['titolo']); $s->bindValue(':esempio', $esempio); $s->bindValue(':esempio2', 15);
    $s->execute(); }
    // se ci sono errori.. catch (PDOException $e) { $error = 'Errore: ' . $e->getMessage(); include 'ERROR/pagerrore.php'; exit(); }


    Non capisco perchè qui si vede un pò incasinato, avevo postato tutto in modo molto ordinato..
    Copia il tutto su un editor ed isola i commenti..
    otto9due: Grazie! La tua sintassi mi è stata molto utile anche se negli inserimenti non è preferibile utilizzare la sintassi SET, più specifica per DELETE e UPDATE! In ogni caso questo format di query mi è ritornato utile per testare gli errori (se di query o di sintassi)

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.