Visualizzazione dei risultati da 1 a 8 su 8

Discussione: [PHP] apice

  1. #1

    [PHP] apice

    $strinf=str_replace ("'","''",$dd);
    $strinfs=str_replace ("'","''",$cc);

    ho un problema con apici e il database...
    se salvo una frase nel database con l'apice singolo --> '
    non la salva perchè ovviamente da un problema col database...allora mi hanno detto di fare con il str_replace e per un po' ha funzionato
    quando ho cambiato host e spostato il database...adesso anche con il str_replace mi da lo stesso problema

    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 'fre','ingresso')' at line 1

    ecco...sapete aiutarmi?
    Grazie

  2. #2
    Utente di HTML.it L'avatar di JoeP
    Registrato dal
    May 2004
    Messaggi
    558
    Hai provato con \\' o con chr( 39 credo che sia l'apice...) da codice PHP?

  3. #3
    cioè fare il str_replace con \' ?

  4. #4
    Utente di HTML.it L'avatar di JoeP
    Registrato dal
    May 2004
    Messaggi
    558
    Credo di non aver capito bene il tuo problema...

    Tu vuoi praticamente fare una query INSERT in MySQL per inserire una stringa del tipo "bell'idea", cioè con l'apice?

    Se è così una cosa del tipo dovrebbe funzionare:
    Codice PHP:
      $Stringa "bell'idea";
      
    $Query "INSERT INTO `tua_tabella` VALUES ('$Stringa');" ;
      
    mysql_query ($query$db); 

  5. #5
    esatto
    ho provato anche così ma mi da lo stesso errore

    $result = mysql_query("insert into chat(id,frase,locazione) values(null,'$strinfs','".$loca."')") or die ("".mysql_error());

    $strinfs è la frase da inserire

  6. #6
    Ciao,
    devi applicare la funzione XXX_escape_string alla stringa che vuoi inserire nel database, dove XXX sta per mysql_, pg_ etc.etc.

    Nelle estensioni per database che non prevedono una funzione simile devi usare str_replace per inserire il carattere d'escape che varia a da database a database:

    mysql -> \'
    pgsql -> \'
    mssql -> ''
    firebird -> ''

    e così via
    per favore NIENTE PVT TECNICI da sconosciuti

  7. #7
    $strinf = mysql_escape_string($dd);

    ho fatto così...adesso sì mi prende l'apice però mi scrive tipo
    bell\'idea
    con la barra in mezzo...

  8. #8
    La barra è il carattere di escape che ti permette di inserire i dati nel database senza errori, quando estrai i dati e vuoi stampare a video devi usare sripslashes() (nel caso di mysql e postgresql, con altri database devi usare str_replace)
    per favore NIENTE PVT TECNICI da sconosciuti

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.