Visualizzazione dei risultati da 1 a 9 su 9
  1. #1

    You have an error in your SQL syntax;

    Buongiorno Ragazzi ho questo codice


    codice:
    	mysql_query("Insert into archive (IDStar,IDMsg,Nome,Cognome,Email,Testo,Image,Data,Pagamento) values ('$RecP[IDStar]','$RecP[IDMsg]','$RecP[Nome]','$RecP[Cognome]','$RecP[Email]','$RecP[Testo]','$RecP[Image]',Now(),'1')") or die (mysql_error()." errore passaggio dati a archive");
    che mi restituisce questo errore quando all'interno dei campi sono inseriti caratteri speciali credo...


    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 'è questa?è la nostra stella quindi quando nn siamo insieme alza gli occhi al c' at line 1


    qualcuno sa aiutarmi? coem posso ovviare al problema?

    grazie mille
    L'intuizione creativa più di ogni altra cosa è l'unico elemento per cui la vita vale la pena di essere vissuta (D.W)

  2. #2
    Utente di HTML.it L'avatar di zoseppe
    Registrato dal
    Jan 2005
    Messaggi
    306
    secondo me c'è qualche carattere non consentito in $RecP[Testo]. Prova ad usare mysql_real_escape_string

  3. #3
    non posso bypassarlo scrivendo anche il carattere non consentito cmq?

    vi scrivo anche come recupero i dati dal form...
    magari il problema è a monte...

    codice:
    $idstar=trim($_REQUEST["idstar"]);
    $idmsg=trim($_REQUEST["idmsg"]);
    $price=trim($_REQUEST["price"]);
    $nome=mysql_real_escape_string(ucwords(trim($_REQUEST["nome"])));
    $cognome=mysql_real_escape_string(ucwords(trim($_REQUEST["cognome"])));
    $email=trim($_REQUEST["email"]);
    $testo=nl2br(trim($_REQUEST["testo"]));
    $tmpimg=$_FILES["fileimage"]["tmp_name"];
    $condizioni=trim($_REQUEST["condizioni"]);
    L'intuizione creativa più di ogni altra cosa è l'unico elemento per cui la vita vale la pena di essere vissuta (D.W)

  4. #4
    Utente di HTML.it L'avatar di Luke70
    Registrato dal
    Jul 1999
    Messaggi
    767
    Nella tua query non ci sono le variabili che indichi nell'ultimo messaggio, ma solo un array:$RecP

    Quindi che le recuperi a fare se non le usi? Come valorizzi $RecP?

  5. #5
    codice:
    $QueryP=mysql_query("Select * from preview Where IDMsg='".trim($_REQUEST["idmsg"])."'") or die (mysql_error()." errore estrazione previews");
    $RecP=mysql_fetch_array($QueryP);
    e da stampa a video vedo questo


    Cara piccolina mia,cos'� questa?� la nostra stella quindi quando nn siamo insieme alza gli occhi al cielo e ricordati che ci sono sempre con te non dimenticarlo
    L'intuizione creativa più di ogni altra cosa è l'unico elemento per cui la vita vale la pena di essere vissuta (D.W)

  6. #6
    Utente di HTML.it L'avatar di zoseppe
    Registrato dal
    Jan 2005
    Messaggi
    306
    mmmm io volevo dire una cosa del tipo:
    codice:
    mysql_query("Insert into archive (IDStar,IDMsg,Nome,Cognome,Email,Testo,Image,Data,Pagamento) 
    values ('$RecP[IDStar]','$RecP[IDMsg]',
    '".mysql_real_escape_string($RecP[Nome])."',
    '".mysql_real_escape_string($RecP[Cognome]."','$RecP[Email])',
    '".mysql_real_escape_string($RecP[Testo])."',
    
    '$RecP[Image]',Now(),'1')") or die (mysql_error()." errore passaggio dati a archive");

  7. #7
    @zoseppe GRAZIE!

    facendo così
    codice:
    mysql_query("Insert into archive (IDStar,IDMsg,Nome,Cognome,Email,Testo,Image,Data,Pagamento) values ('$RecP[IDStar]','".mysql_real_escape_string($RecP[IDMsg])."','".mysql_real_escape_string($RecP[Nome])."','".mysql_real_escape_string($RecP[Cognome])."','".mysql_real_escape_string($RecP[Email])."','".mysql_real_escape_string($RecP[Testo])."','$RecP[Image]',Now(),'1')") or die (mysql_error()." errore passaggio dati a archive");
    mi ha risolto il problema... non da più l'errore e scrive correttamente nel db
    solo che però mi passa anche i caratteri non validi ovviamente...

    sapresti dirmi anche come posso ovviare a questo?

    "Cara piccolina mia,cos'� questa?�"

    grazie!
    L'intuizione creativa più di ogni altra cosa è l'unico elemento per cui la vita vale la pena di essere vissuta (D.W)

  8. #8
    Utente di HTML.it L'avatar di zoseppe
    Registrato dal
    Jan 2005
    Messaggi
    306
    La funzione che ti suggerito serve a fare l'escape dei caratteri che creano problemi a mysql.

    Se hai bisogno di un controllo "personalizzato" quindi una validazione puoi usare le espressioni regolari. Ad esempio se vuoi accettare solo lettere, accenti numeri potresti fare un controllo a "monte" in questa maniera:

    Codice PHP:
    $testo=trim($_REQUEST["testo"]);
    $pattern "/^[a-zA-Z0-9_'\s]$/";

    if (!
    preg_match($pattern$testo)) {
        echo(
    "Attenzione sono presenti caratteri non validi");
       exit();

    lo script in caso di errore si blocca e per poter inserire i dati nel db sei "obbligato" a correggere l'input

  9. #9
    Utente di HTML.it L'avatar di luca200
    Registrato dal
    Apr 2002
    Messaggi
    4,120
    Il problema è l'apostrofo del "cos'è"

    http://forum.html.it/forum/showthrea...ostid=10166292

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.