[PHP] PDO prepared statement - select query errore

cleto

Nuovo Utente
28 Feb 2012
9
0
1
Salve ho un DB dal nome 'test' con campi ID, post_title, post_content, post_name, post_date e la seguente query:

PHP:
$db_host = 'localhost';
$db_user = 'root';
$db_pass = '';
$db_name = 'test';
$id = 1;
try{

     $conn = new PDO("mysql:host={$db_host};dbname={$db_name}", "$db_user", "$db_pass");

     $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
 
    $stmt = $conn->prepare("SELCT * FROM objects WHERE ID  = :id ");
 
     $stmt->execute(array(":id" => $id));

      while($row = $stmt->fetch(PDO::FETCH_OBJ)){
 
         $results[] = $row;

      } 
 
      echo '<pre>' , print_r ($results) , '</pre>';

  } catch(PDOException $e){

    echo 'ERROR: ' . $e->getMESSAGE();

  }

e ricevo il seguente messaggio di errore:

ERROR: SQLSTATE[42000]: Syntax error or access violation: 1064 Erreur de syntaxe pr�s de 'SELCT * FROM objects WHERE ID = '1'' � la ligne 1

sapete darmi una dritta?...grazie
 

AdeKnite

Utente Attivo
3 Ago 2016
161
35
28
28
Ciao. Hai un errore nella query. Hai scritto SELCT al posto di SELECT.
 

otto9due

Utente Attivo
22 Feb 2014
529
21
28
Perchè usi prepare per un select? Io lo uso sempre e solo per insert ed update.. crea una sorta di segnaposto da quanto ho capito, e si usa per prevenire le injection db. Per questo motivo lo uso prevalentemente quando vado ad inserire dati provenienti da fonti esterne, ma se devo recuperarmi un dato da db non l'ho mai usato.
Comunque appena ho un sec ti posto il codice che uso io se ancora non hai risolto.


Inviato dal mio iPhone utilizzando Tapatalk
 

marino51

Utente Attivo
28 Feb 2013
3.039
192
63
Lombardia
Perchè usi prepare per un select? Io lo uso sempre e solo per insert ed update.. crea una sorta di segnaposto da quanto ho capito, e si usa per prevenire le injection db. Per questo motivo lo uso prevalentemente quando vado ad inserire dati provenienti da fonti esterne, ma se devo recuperarmi un dato da db non l'ho mai usato.

chi vuole compiere azioni malevole introduce del codice, in questo caso sql,
non sembra ovvio, anche se dovrebbe esserlo, che il codice può essere inserito in qualunque "veicolo", select comprese, che agisce su delle risorse

@cleto lascia il binding su ogni azione che interessa il db
 
  • Like
Reactions: otto9due

cleto

Nuovo Utente
28 Feb 2012
9
0
1
Grazie mille...e dire che l'ho riletta per ore (sic) e alla fine ho trovato anche questa sintassi:

PHP:
$db_host = 'localhost';
$db_user = 'root';
$db_pass = '';
$db_name = 'test';
$id = 1;
try{

    $conn = new PDO("mysql:host={$db_host};dbname={$db_name}", "$db_user", "$db_pass");
    $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);             
             
     $sql = "SELECT *
                 FROM objects
                WHERE ID = :id";    
   
       $stmt = $conn->prepare($sql, array(PDO::ATTR_CURSOR => PDO::CURSOR_FWDONLY));
   
      $stmt->execute(array(':id' => $id));

            while($row = $stmt->fetch(PDO::FETCH_OBJ)){  
   
               $results[] = $row;
       
            }    

      echo '<pre>' , print_r ($results) , '</pre>';

 } catch(PDOException $e){
      echo 'ERROR: ' . $e->getMESSAGE();
 }

@cleto lascia il binding su ogni azione che interessa il db

mi vergogno della mia ignoranza ma non so che vuol dire
 

marino51

Utente Attivo
28 Feb 2013
3.039
192
63
Lombardia
mi vergogno della mia non conoscenza, ma non so che vuol dire
proprio il modo di agire con i "segnaposto", detto in maniera molto semplice
che sono rappresentati con ":nome" oppure da un "?", ovvero
PHP:
SELECT * FROM objects WHERE ID = :id
oppure
SELECT * FROM objects WHERE ID = ?
puoi fare riferimento al manuale per le differenze ed ad un buon articolo, se hai del tempo ...
https://phpdelusions.net/pdo
 
Discussioni simili
Autore Titolo Forum Risposte Data
K [PHP] PDO.bindingParam PHP 2
M [PHP] Interrompere DROP TABLE con PDO PHP 0
M [PHP] Alternativa a datagrid con PDO PHP 6
M [PHP] Creare un menu a tendina con pdo PHP 18
M [PHP] Array di array - PDO PHP 2
W [PHP] Creazione classe PDO PHP 4
F PHP, PDO e visualizzazioni errori e/o eccezioni PHP 3
3_g [PHP] mvc, pdo e classi... PHP 7
F php PDO mysql connessione(select_db) PHP 3
Fredyss redirect a altra pagina php dopo commit su postgresql con PDO PHP 1
ANDREA20 [PHP] Errore $this->db_connection = new PDO PHP 0
MarcoGrazia [PHP][PDO][MySQL] Non registra ma non da nemmeno errori. PHP 0
MarcoGrazia [PHP][PDO] Come connettersi al database Snippet PHP 0
MarcoGrazia [PDO][PHP[MySQL] Piccolo modulo di ricerca in un sito tramite l'operatore LIKE Snippet PHP 0
neo996sps [PHP e funzioni con PDO] Funzione per generare corpo tabella PHP 1
R Organizzazione PHP Mysql PDO PHP 15
voldemort PHP PDO: non c'ho capito niente PHP 1
M Visulizzare immagine con php PHP 8
G [PHP] Creare script di prenotazione con controllo disponibilità. PHP 7
G leggere file txt e stampare con php il contenuto a video PHP 7
F Ricreare struttura php+mysql su Xampp Apache 0
Z PHP.INI - STMP per invio email con PHP Server Dedicati e VPS 0
M Array associativi php su 2 campi mysql PHP 10
G Invio form con PHP PHP 3
T fatture con voci fattura in php PHP 0
T ALTRO PROBLEMA CON ARRAY PHP PHP 1
M Collegamento tra form html e script php PHP 4
M Problemi con la stampa dei valori in php PHP 1
W [Cerco collaborazioni] Sviluppatore Web (PHP) Offerte e Richieste di Lavoro e/o Collaborazione 1
D passare valori da database sql a php PHP 1
L Ricezione dei dati su file php da modulo html PHP 6
E Inviare variabile a PHP da ciclo in JS Javascript 0
A form PHP prenotazione tramite query PHP 2
A Form php prenotazione di un azienda sanitaria locale presso studio medico PHP 1
F menù select dinamico da db in php PHP 3
L Problemi form Pagina php HTML e CSS 3
L php mysql non salva solo id PHP 21
L php mysql cerca e visualizza pagina PHP 0
F Il codice php è giusto? PHP 2
R Aggiornare record mysql con Ajax, jQuery e php Ajax 2
A invio massivo dati a file php Javascript 4
Z MySql injection PHP PHP 1
V PHP form intersecate PHP 0
I [Offro][Retribuito] Programmatore Php Offerte e Richieste di Lavoro e/o Collaborazione 0
P Funzione jQuery Ajax invio file a php jQuery 1
C Dopo chiusura del tag php la stringa html va a capo PHP 1
E Transaction php PHP 11
B ciclare file xml con PHP PHP 1
L Estrazione dati php Database 6
A Aiuto per pagina php PHP 0

Discussioni simili