Pagina 1 di 5 1 2 3 ... ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 48
  1. #1

    Usare single quotes in una query mySQL con PDO partendo da un array e senza prepared statements

    Salve a tutti, ho un problema nell'eseguire correttamente una query.
    La query presenta come clausola WHERE un array.
    L'array contiene un elemento con una virgoletta '
    Esempio:
    codice:
      $element="Bob's cat";
        $array = array($element);
        foreach ($array as $example)
        {
        $count = $pdo->query("SELECT COUNT(column) FROM $tableexample 
        WHERE column='$example'");
    
        foreach ($count as $row) { echo $example,$row[0];}
        }
    Quando eseguo la query ottengo come risultato 0 perchè la single quote mi taglia la query.
    Ho provato ad usare addslashes ma non ho ottenuto risultati.
    ESEMPIO
    codice:
    $count = $pdo->query("SELECT COUNT(column) 
    FROM $tableexample WHERE column='".addslashes($example)."'");
    In giro ho letto che dovrei usare i prepared statements
    -è possibile farlo anche senza prepared statements?
    -Se si come. Se no come risolvo? :P
    GRAZIE MILLE

  2. #2
    prova a raddoppiare gli apici

    L'Aquila diventa L''Aquila

  3. #3
    Quote Originariamente inviata da optime Visualizza il messaggio
    prova a raddoppiare gli apici

    L'Aquila diventa L''Aquila
    Già ho provato...ma forse hai in mente qualcosa di diverso... fammi un esempio....grazie

  4. #4
    come "fammi un esempio"? quello de L'Aquila non bastava?

  5. #5

  6. #6
    Quote Originariamente inviata da optime Visualizza il messaggio
    come "fammi un esempio"? quello de L'Aquila non bastava?
    Ah pensavo fosse una firma ahahahahah :P. Anche perchè non posso farlo!
    Non posso sostiuirlo ne nell'array ne nella variabile! Sono valori fondamentali che se cambiati tocca riscrivere buona parte del codice!

    Quote Originariamente inviata da optime Visualizza il messaggio
    Ho già provato così
    echo $db->quote($stringa);
    Ma suppongo che non vada bene essendo un array (anche perchè anche questo non mi funziona)

  7. #7
    Utente di HTML.it
    Registrato dal
    Oct 2014
    Messaggi
    437
    prova con questa funzione, prima di eseguire la query,
    codice:
      function FixSQL( $params=array() )
      {
        $stringa = serialize($params);
        // error_log($stringa, 0);
        $stringa = str_replace("'", "''" , $stringa);
        $stringa = str_replace("%", "[%]", $stringa);
        $stringa = str_replace("[", "[[]", $stringa);
        $stringa = str_replace("]", "[]]", $stringa);
        $stringa = str_replace("_", "[_]", $stringa);
        $stringa = str_replace("#", "[#]", $stringa);
        // error_log($stringa, 0);
        return unserialize($stringa);
      }

  8. #8
    Quote Originariamente inviata da marino51 Visualizza il messaggio
    prova con questa funzione, prima di eseguire la query,
    Ho provato cosi ma non funziona...cosa sbaglio?
    codice:
          function FixSQL( $array )
      {
        $stringa = serialize($array);
        // error_log($stringa, 0);
        $stringa = str_replace("'", "''" , $stringa);
        $stringa = str_replace("%", "[%]", $stringa);
        $stringa = str_replace("[", "[[]", $stringa);
        $stringa = str_replace("]", "[]]", $stringa);
        $stringa = str_replace("_", "[_]", $stringa);
        $stringa = str_replace("#", "[#]", $stringa);
        // error_log($stringa, 0);
        return unserialize($stringa);
      }
    
    foreach ($stringa as $example){
        
        $count= $pdo->query("SELECT COUNT(column) FROM $tableexample WHERE column='$example'");
        foreach ($count as $row) { echo $ok, $row[0],"<br>";
    }

  9. #9
    Nessuno sa aiutarmi? Grazie

  10. #10
    Utente di HTML.it L'avatar di brodik
    Registrato dal
    Jan 2009
    Messaggi
    752
    su che variabile hai usato la funzione FixSQL?
    eXvision

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