Visualizzazione dei risultati da 1 a 9 su 9
  1. #1
    Utente di HTML.it L'avatar di Threepwood
    Registrato dal
    Feb 2003
    Messaggi
    2,107

    [PHP-MYSQL] insert query da php... con qualche problema

    Sarà che è venerdì pomeriggio ma oggi non riesco a ragionare...

    codice:
    $sql="insert into saved_search(query) values '".$_SESSION['sqldo']."'";
    Nel campo "query" vado ad inserire un pezzettino di una query, per salvare le ricerche che fa un utente.

    la $_SESSION['sqldo'], ad esempio vale
    codice:
    rag like \'%niel%\' "
    Ovviamente così come è messa la query di inserimento mi da errore per il discorso degli apici:

    codice:
    insert into saved_search(query) values ' rag like \'%niel%\' '
    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 '' rag like \'%niel%\' '' at line 1
    Come risolvo? (mi sembra una cavolata... ma oggi non connetto proprio...)
    Guybrush Threepwood

  2. #2
    Prova

    $sql = "insert into saved_search(query) values (\"" . $_SESSION['sqldo'] . "\")";

  3. #3
    Utente di HTML.it L'avatar di Threepwood
    Registrato dal
    Feb 2003
    Messaggi
    2,107
    ottimo
    Guybrush Threepwood

  4. #4
    Utente di HTML.it L'avatar di luca200
    Registrato dal
    Apr 2002
    Messaggi
    4,120
    Codice PHP:
    $query mysql_real_escape_string($_SESSION['sqldo']);
    $sql="insert into saved_search(query) values '$query' "

  5. #5
    Utente di HTML.it L'avatar di luca200
    Registrato dal
    Apr 2002
    Messaggi
    4,120
    Originariamente inviato da Threepwood
    ottimo
    Ottimo neanche un po'.
    La prima volta che hai delle virgolette nella query invece degli apici sei da capo

  6. #6
    Hai ragione, mi dimenticavo dire che prima occorreva fare
    $_SESSION['sqldo'] = stripslashes($_SESSION['sqldo']);

    A me questo tipo di approccio non ha mai creato errori, anche quando la var.le in questione contenesse dei doppi apici

  7. #7
    Utente di HTML.it L'avatar di luca200
    Registrato dal
    Apr 2002
    Messaggi
    4,120
    Originariamente inviato da gianf_tarantino
    Hai ragione, mi dimenticavo dire che prima occorreva fare
    $_SESSION['sqldo'] = stripslashes($_SESSION['sqldo']);
    Ma cosa stai dicendo :rollo:

  8. #8
    Utente di HTML.it L'avatar di Threepwood
    Registrato dal
    Feb 2003
    Messaggi
    2,107
    Originariamente inviato da luca200
    Ottimo neanche un po'.
    La prima volta che hai delle virgolette nella query invece degli apici sei da capo
    Le virgolette non dovrei averle mai...
    Guybrush Threepwood

  9. #9
    Hai perfettamente ragione, ho controllato meglio, quello che faccio è

    $_SESSION['sqldo'] = str_replace ("\"", "\\\"", $_SESSION['sqldo']);

    cioé aggiungo il carattere di escape ai doppi apici, che è la stessa cosa che
    fa mysql_real_escape_string, solo che quest'ultima lo fa anche ai caratteri speciali ed è meglio. Scusate ancora ma oggi sono particolarmente stanco

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.