Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Utente di HTML.it L'avatar di Gioa32
    Registrato dal
    Jan 2000
    Messaggi
    68

    bindValue mi ritorna" Syntax error or access violation"

    Ciao a tutti.

    Mi sono arenato sui prepared statements. Ecco un esempio semplificato del mio problema:

    Così funziona tutto
    Codice PHP:
    $this->stmt $this->pdo->prepare('SELECT * FROM articoli');
    $this->stmt->execute(); 


    Mente così no:
    Codice PHP:
    $tabella 'articoli';
    $this->stmt $this->pdo->prepare('SELECT * FROM :label');
    $this->stmt->bindValue(':label'$tabellaPDO::PARAM_STR);
    $this->stmt->execute();

    //così nemmeno
    $tabella 'articoli';
    $this->stmt $this->pdo->prepare('SELECT * FROM :label');
    $this->stmt->bindValue(1$tabellaPDO::PARAM_STR);
    $this->stmt->execute(); 

    In entrambi i casì l'errore restituito è:
    codice HTML:
    SQLSTATE[42000]: Syntax error or access violation: 1064 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 ''articoli'' at line 1


    Grazie per l'aiuto.




  2. #2
    Utente di HTML.it L'avatar di boots
    Registrato dal
    Oct 2012
    Messaggi
    1,626
    Per quel che ne so non puoi fare il bind con nomi di tabella o campi, ma solo con i valori

    Codice PHP:
    $tabella 'articoli';
    $this->stmt $this->pdo->propare("SELECT * FROM $tabella WHERE campo = :campo");
    $this->stmt->bindValue(':campo'$qualcosaPDO::PARAM_STR); 

  3. #3
    Utente di HTML.it L'avatar di Gioa32
    Registrato dal
    Jan 2000
    Messaggi
    68
    Cavolo hai ragione:

    Table and Column names cannot be replaced by parameters in PDO.
    Grazie!

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