Visualizzazione risultati 1 fino 8 di 8

Discussione: [PHP/MySQL] problemi campo longtext

  1. #1
    Guest

    Predefinito MySQL - campo long text

    ho una tabella, in un database, in cui c'è un campo, che ho dichiarato "long text", in quanto in quel campo dovevano essere inserite eventuali dichiarazioni da parte di chi passa sul mio sito...(tipo guestbook...mini-forum..)
    solo ke spesso, mi da problemi nell'invio...

    il listato è questo...
    Codice PHP:
    <?php
    include("config.php");
    $D=trim(stripslashes($_POST["D1"]));
    $N=trim(stripslashes($_POST["T1"]));
    $query="INSERT INTO dichiarazioni (Nome,dichiarazione,data)
    VALUES ('"
    .$N."','".$D."', NOW() )";
    if (
    mysql_query($query)){
    echo
    "<p align=center>Grazie per aver inviato la dichiarazione<br>";
    header("Refresh: 2;URL=dichiarazioni2.php");
    }
    else{
    echo
    "C'è stato un problema. Riprovare <br><br>";
    echo
    "Se il problema persiste contattare Al Sith.";
    header("Refresh: 2;URL=seleziona2.php");
    }
    ?>
    questo problema nn me lo da sempre...
    ogni tanto, io inserisco come sempre, nome...e dichiarazione...
    e mi dice "C'è stato un problema"...a cosa potrebbe essere imputabile questo errore...??

  2. #2
    L'avatar di dementialsite
    dementialsite non è connesso Super Moderatore
    Data registrazione
    19-10-2004
    Residenza
    fuori Padova
    Messaggi
    5,046

    Predefinito

    Citazione Originalmente inviato da AlSith
    ...
    questo problema nn me lo da sempre...
    ogni tanto, io inserisco come sempre, nome...e dichiarazione...
    e mi dice "C'è stato un problema"...a cosa potrebbe essere imputabile questo errore...??
    Non l'ho mai provato, ma potresti vedere cosa succede scrivendo così l'esecuzione della query:
    Codice PHP:
    $query = "INSERT INTO ...";
    $result = mysql_query ($query, $db) or die ("Errore nell'inserimento<BR>" . mysql_error ());
    if (
    $result)
    {
    echo (
    "Inserimento riuscito!");
    ...
    }
    else
    {
    echo (
    "Inserimento non riuscito...");
    ...
    }
    Comunque questo codice NON risolverà il tuo problema... ma almeno visualizza l'errore che avviene, dandoti forse anche le indicazioni per risolverlo.

    Stammi bene...
    Le questioni tecniche hanno risposte migliori nel forum pubblico, non trovi?

    When you don't know your next step... improvise

    ALTERVISTA WANTS YOU!
    Vuoi diventare moderatore su AlterVista? Scopri come...

  3. #3
    Guest

    Predefinito [PHP/MySQL] problemi campo longtext

    ho fatto come hai detto dementialsite...
    e quando ho inserito questo testo:

    " Bella, caro Fabio. Ottima partenza col botto! L'avevo detto ke x me quest'anno sarebbe stata difficile...ma i BlacKnights non molleranno. Datemi 7 giornate e vedrete come torneremo sotto a darvi filo da torcere. Stiamo arrivando...berlino stiamo arrivando...stiamo arrivando...berlino stiamo arrivando "

    ho lanciato il file php per l'inserimento nel db...e mi è uscito:

    " Errore nell'inserimento
    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 'avevo detto ke x me quest'anno sarebbe stata difficile...ma i Bl "

    ed ora, dove devo cercare per capire e risolvere il problema??
    qual'è questo manuale che corrisponde alla mia versione del server MySQL??

  4. #4
    Guest

    Predefinito

    sono gli apostrofi a dare problemi... usa mysql_escape_string() o addslashes() o htmlspecialchars() o .... ci sono un sacco di possibilità
    Ultima modifica di Inverno : 12-09-2006 alle ore 13.19.11

  5. #5
    Guest

    Predefinito risp...

    quado salvo il testo all'interno della textarea uso questa riga di comando:

    Codice PHP:
    $D=trim(stripslashes($_POST["D1"]));
    devo sostituire "stripslashes con una di quelle che hai detto tu...??

  6. #6
    Guest

    Predefinito

    Citazione Originalmente inviato da AlSith
    quado salvo il testo all'interno della textarea uso questa riga di comando:

    Codice PHP:
    $D=trim(stripslashes($_POST["D1"]));
    devo sostituire "stripslashes" con una di quelle che hai detto tu...??
    prova a sostituire stripslashes con addslashes.... :))))

  7. #7
    L'avatar di seneca
    seneca non è connesso Super Moderatore
    Data registrazione
    18-12-2004
    Residenza
    la Città Eterna
    Messaggi
    8,376

    Predefinito

    Alsith, sei già stato bannato per il tuo uso di aprire discussioni identiche, fare il bis non mi sembra il caso! Postare nella vecchia (di 7 giorni!) discussione non mi sembra per nulla scandaloso!
    Per questa volta unisco la vecchia con la nuova.


    -- Aut Roma Aut Nihil!

  8. #8
    L'avatar di dementialsite
    dementialsite non è connesso Super Moderatore
    Data registrazione
    19-10-2004
    Residenza
    fuori Padova
    Messaggi
    5,046

    Predefinito

    Citazione Originalmente inviato da AlSith (messaggio privato)
    Ti chiedo scusa, perchè non mi ero accorto che l'altra volta mi avevi risposto...scusami ancora...anche per il messaggio privato, ma volevo essere sicuro ke lo leggessi tu...
    ho fatto come hai detto...
    e quando ho inserito questo testo:

    " Bella, caro Fabio. Ottima partenza col botto! L'avevo detto ke x me quest'anno sarebbe stata difficile...ma i BlacKnights non molleranno. Datemi 7 giornate e vedrete come torneremo sotto a darvi filo da torcere. Stiamo arrivando...berlino stiamo arrivando...stiamo arrivando...berlino stiamo arrivando "

    ho lanciato il file php per l'inserimento nel db...e mi è uscito:

    " Errore nell'inserimento
    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 'avevo detto ke x me quest'anno sarebbe stata difficile...ma i Bl "

    dove devo cercare per capire e risolvere il problema??

    grazie per l'aiuto.
    Come detto più sopra, sono gli apostrofi che causano problemi. Per la precisione, stai inserendo una stringa che in MySQL va delimitata con apostrofi, inserendone uno MySQL crede che tu l'abbia chiusa. Per evitare questo, gli apostrofi presenti nella stringa vanno RADDOPPIATI: il modo più veloce per fare questo è di chiamare questa funzione (verifica se l'ordine dei parametri è testo, stringa da rimpiazzare, rimpiazzo):
    Codice PHP:
    $new_text = str_replace ("'", "''", $text)
    Stammi bene...

    [4 seneca] L'altra discussione l'avevo chiusa... ne è stata aperta una terza?
    Le questioni tecniche hanno risposte migliori nel forum pubblico, non trovi?

    When you don't know your next step... improvise

    ALTERVISTA WANTS YOU!
    Vuoi diventare moderatore su AlterVista? Scopri come...

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •