Visualizzazione dei risultati da 1 a 8 su 8
  1. #1
    Utente di HTML.it L'avatar di Fractals87
    Registrato dal
    Apr 2008
    Messaggi
    1,202

    PDO BindParam and set Type

    Ciao a tutti,

    Non riesco proprio a capire a cosa serve passare il tipo di dato :

    Codice PHP:
    try{    
        
    $param='%p%';
        
    $sql $db->prepare('SELECT user FROM utenti WHERE user LIKE ? ');
        
    $sql->bindParam(1$paramPDO::PARAM_INT);

        
    $sql->execute();
        foreach(
    $sql->fetchAll() as $rk){
            echo 
    $rk['user']."
    "
    ;    
        }
    }catch (
    PDOException $e) {
        echo 
    "Intercettato errore nella query : ".$e->GetMessage();    

    Da questa esempio di codice, mi aspetto che mi sollevi una eccezzione dicendomi, attenzione quello che tu stai passando come parametro non rispetta il tipo indicato (o il corrispondente del db).
    Questo purtroppo non avviene come mai?

    Ps. ho settato correttamente la generazione delle eccezzioni alla creazione della connessione
    Che mestiere difficile.....essere da soli ancora di più

  2. #2
    Utente di HTML.it L'avatar di neroux
    Registrato dal
    Aug 2009
    Messaggi
    1,973
    Non so, http://www.php.net/manual/en/pdostatement.bindparam.php non dice niente su una eccezzione, ma solo che restituisca true oppure false.

    www.sitemeer.com » Quando un sito pare irraggiungibile

    Se ti piace ci puoi trovare anche su Facebook

  3. #3
    Utente di HTML.it L'avatar di Fractals87
    Registrato dal
    Apr 2008
    Messaggi
    1,202
    Codice PHP:
        if(!$sql->bindParam(1$paramPDO::PARAM_INT))
            echo 
    "ERRORE"
    Anche in questo modo comunque non restituisce false.
    Sbaglio qualcosa?
    Che mestiere difficile.....essere da soli ancora di più

  4. #4
    Ma perché dovrebbe dare errore? In mysql non si può fare a like 1?
    IP-PBX management: http://www.easypbx.it

    Old account: 2126 messages
    Oldest account: 3559 messages

  5. #5
    Utente di HTML.it L'avatar di Fractals87
    Registrato dal
    Apr 2008
    Messaggi
    1,202
    Mi aspettavo ci fosse una forma di controllo tra PDO::PARAM_INT e $param,
    Nel caso non fosse rispettato errore.

    A questo punto sorge una domanda spontanea a cosa serve passargli la tipologia di parametro?
    Che mestiere difficile.....essere da soli ancora di più

  6. #6
    Originariamente inviato da Fractals87
    Mi aspettavo ci fosse una forma di controllo tra PDO::PARAM_INT e $param,
    Nel caso non fosse rispettato errore.

    A questo punto sorge una domanda spontanea a cosa serve passargli la tipologia di parametro?
    sinceramente, pdo a mano non l'ho mai usato, in genere uso framework di mezzo per accedere ai database. Effettivamente non è chiarissima la documentazione in quel punto, ma penso che serva per fare un check sul valore che passi, non sul tipo di colonna nel db. Potresti provare a passargli "foo" e impostare il tipo ad int e vedere se lancia un errore
    IP-PBX management: http://www.easypbx.it

    Old account: 2126 messages
    Oldest account: 3559 messages

  7. #7
    Utente di HTML.it L'avatar di Fractals87
    Registrato dal
    Apr 2008
    Messaggi
    1,202
    infatti è quello che ho fatto
    1 non è il valore, ma bensi $param, che è uguale alla stringa %p%.
    Tutto questo poi è passato al bind con type INT
    e non genera errore.
    Che mestiere difficile.....essere da soli ancora di più

  8. #8
    la spiegazione sembrerebbe questa:

    http://stackoverflow.com/questions/8...w-does-it-work
    IP-PBX management: http://www.easypbx.it

    Old account: 2126 messages
    Oldest account: 3559 messages

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.