Pagina 4 di 5 primaprima ... 2 3 4 5 ultimoultimo
Visualizzazione dei risultati da 31 a 40 su 48
  1. #31
    Quote Originariamente inviata da boots Visualizza il messaggio
    Ma quindi la query non ti da errore? se fai:
    Codice PHP:
    ...
    $result $stmt->execute();
    if(
    $result){
      echo 
    "Query ok";
    }else{
      echo 
    "Query ko";

    Sisi funziona ottengo Query ok.
    Viene eseguita completamente perchè la query si chiude e si riapre ovvero 'D'Angelo'
    Si chiude alla D si riapre alla fine di Angelo
    Quindi viene completata ma ottengo 0 perche ovviamente la query non essendo completa cerca solo la D (WHERE Farmacia = D)

    Quote Originariamente inviata da boots Visualizza il messaggio
    Cosa hai per la query con l'apice ?
    In che senso?

  2. #32
    Utente di HTML.it L'avatar di boots
    Registrato dal
    Oct 2012
    Messaggi
    1,626
    Quote Originariamente inviata da supersqualo Visualizza il messaggio
    In che senso?
    Volevo sapere se per D'Angelo hai un query ok o ko ?

    A questo punto sei sicuro che effettivamente ci sia questo record?

  3. #33
    ancora qua state? usate la funzione FixSQL che vi è stata segnalata all'inizio...

  4. #34
    Quote Originariamente inviata da optime Visualizza il messaggio
    ancora qua state? usate la funzione FixSQL che vi è stata segnalata all'inizio...
    E come?
    E se volessi utilizzare i prepared statements?
    Io nn riesco ad usare FixSQL e poi non capisco perchè dovrei sostituire la single quote con la double quote visto che nel database ho l'elemento con la single quote?

    Di conseguenza la query andrebbe a cercare D"Angelo nel database e non D'Angelo.
    Otterrei comunque 0 come risultato

    Quote Originariamente inviata da boots Visualizza il messaggio
    Volevo sapere se per D'Angelo hai un query ok o ko ?

    A questo punto sei sicuro che effettivamente ci sia questo record?
    Sono certo che ci sia D'angelo nei record (è un calendario turni quindi ogni tot giorni ricompare) tant'è vero che io voglio contare quanti turni abbiano assegnato ad ognuno
    Ultima modifica di supersqualo; 24-01-2018 a 15:10

  5. #35
    no, non ti è chiaro il meccanismo

    questo statement

    SELECT * FROM Clienti WHERE Cognome='D'Angelo'

    va in errore perché il parser SQL riconosce

    SELECT * FROM Clienti WHERE Cognome='D'

    e non sa che farsene di Angelo'


    se invece scrivi

    SELECT * FROM Clienti WHERE Cognome='D''Angelo'

    il parser vedi i due apici consecutivi e capisce che lo statement non finisce lì ma al prossimo apice; sul db cerca D'Angelo

    (qui siamo alle basi di SQL...)

    qui una spiega di prepared statements https://www.w3schools.com/php/php_my...statements.asp

    qui la differenza tra prepared statements e parametrized queries

    https://www.google.it/search?q=prepa...erized+queries


  6. #36
    Quote Originariamente inviata da optime Visualizza il messaggio
    no, non ti è chiaro il meccanismo

    questo statement

    SELECT * FROM Clienti WHERE Cognome='D'Angelo'

    va in errore perché il parser SQL riconosce

    SELECT * FROM Clienti WHERE Cognome='D'

    e non sa che farsene di Angelo'


    se invece scrivi

    SELECT * FROM Clienti WHERE Cognome='D''Angelo'

    il parser vedi i due apici consecutivi e capisce che lo statement non finisce lì ma al prossimo apice; sul db cerca D'Angelo

    (qui siamo alle basi di SQL...)

    qui una spiega di prepared statements https://www.w3schools.com/php/php_my...statements.asp

    qui la differenza tra prepared statements e parametrized queries

    https://www.google.it/search?q=prepa...erized+queries

    Perfetto, non lo sapevo...adesso è chiaro, l'ho testato ed hai ragione... ma se scrivo la funzione cosi


    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>";
    }

    Non funziona!

  7. #37
    Cosa sbaglio?
    Se volessi utilizzare le parameterized queries come dovrei fare?

  8. #38

  9. #39
    Quote Originariamente inviata da optime Visualizza il messaggio
    aridajela: la funzione la dichiari ma non la usi!

    https://www.google.it/search?q=how+t...nctions+in+php
    Secondo quest'esempio
    https://www.w3schools.com/php/showph...demo_function2

    Così dovrebbe funzionare.... e invece no...
    codice:
      function FixSQL( $param )
      {
        $stringa = serialize($param);
        // 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);
      }
        FixSQL("D'Angelo");
    Purtroppo come ho già scritto non ne capisco molto però questa dovrebbe essere la sintassi esatta...
    Ma nn funziona!

    Non funziona nemmeno cosi
    http://sandbox.onlinephpfunctions.com/code/7f47f28bcd913fba2761f923cfba955f9a72be87
    codice:
      function FixSQL( $param )
      {
        $stringa = $param;
        $stringa = str_replace("'", "''" , $stringa);
      }
    FixSQL("D'Angelo");
    Ultima modifica di supersqualo; 24-01-2018 a 17:00

  10. #40
    Utente di HTML.it L'avatar di boots
    Registrato dal
    Oct 2012
    Messaggi
    1,626
    Guarda basta che fai:
    Codice PHP:
    $array FixSQL($array);
    foreach(
    $array as $example){
       ...

    Cmq, non mi spiego perchè non ti funzioni $pdo->quote()

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