Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 18
  1. #1
    Utente di HTML.it
    Registrato dal
    Nov 2009
    Messaggi
    97

    Memorizzare testo in una tabella sql

    Ciao a tutti, sto cercano di memorizzare del texto (delle cronache) nel database mysql per poi richiamarle per data, solo che non riesco a scrive nella tabella, invio da form il testa nella pagina del file temporaneo viene letto , ma nella tabella sql non c’è niente è vuota. Chiedo a voi se gentilmente mi dareste un occhiata allo script.
    Vi posto lo script php: [PHP]
    <?php
    try{
    $cn = getConnessioneDB(); # apro connessione DB
    $cn->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION ); #gestione errori con PDO

    #connessione DB effettuata

    $query = "SELECT * FROM cronaca";
    $pstm = $cn->prepare($query);// creo uno statement per eseguire query
    $pstm->execute();
    while($row=$pstm->fetch()){
    echo "Cronaca " . $row["txt"] ." Autore: ". $row["autore"] . "
    <hr />";
    }
    $cn = NULL;
    }catch(PDOException $e){
    $_SESSION["err"] = "Si è verificato un errore...";
    header("location: errore.php");
    }

    ?>

    <form action="chkInsertCronaca.php" method="post">
    <script type="text/javascript" src="ckeditor/ckeditor.js"></script>
    <textarea name="txtCronaca" rows="15" cols="40" id="txtCronaca"></textarea>
    <script type="text/javascript">
    CKEDITOR.replace( 'txtCronaca' );
    </script>
    <input name="submit" type="submit" value="INVIA CRONACA" />
    </form>
    <?php

    // giornata cronaca

    $text="";
    $txt .= $_POST["txt"] ." ";
    $txt .= $_POST["txtCronaca"] ." ";
    $autore = $_SESSION["user"];
    echo $txt;
    echo $txtCronaca;
    $insertCronaca ($txt, $autore) ." ";
    echo " Cronaca inserita ";



    function inserisciCronaca($txt,$autore){
    try{
    $cn = getConnessioneDB(); # apro connessione DB
    $cn->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION ); #gestione errori con PDO

    #connessione DB effettuata

    $query = "INSERT INTO cronaca(txt, autore) VALUES(?,?,?)";
    $pstm = $cn->prepare($query);// creo uno statement per eseguire query
    $pstm->bindParam(1,$txt,PDO::PARAM_STR);
    $pstm->bindParam(2,$autore,PDO::PARAM_STR);
    $pstm->execute();
    $cn = NULL;
    }catch(PDOException $e){
    $_SESSION["err"] = "Si è verificato un errore...";
    header("location: errore.php");
    }
    }

    ?>
    Grazie in anticipo per lentuale aiuto.

  2. #2
    Utente di HTML.it L'avatar di las
    Registrato dal
    Apr 2002
    Messaggi
    1,221
    devi sostituire nella query i punti interrogativi con le variabili

    Codice PHP:
    function inserisciCronaca($txt,$autore){
    try{
    $cn getConnessioneDB(); # apro connessione DB
    $cn->setAttributePDO::ATTR_ERRMODEPDO::ERRMODE_EXCEPTION ); #gestione errori con PDO

    #connessione DB effettuata

    $query "INSERT INTO cronaca(txt, autore) VALUES('$txt','$autore')";
    $pstm $cn->prepare($query);// creo uno statement per eseguire query
    $pstm->bindParam(1,$txt,PDO::PARAM_STR);
    $pstm->bindParam(2,$autore,PDO::PARAM_STR);
    $pstm->execute();
    $cn NULL;
    }catch(
    PDOException $e){
    $_SESSION["err"] = "Si è verificato un errore...";
    header("location: errore.php");
    }

    Il calcolatore è straordinariamente veloce, accurato e stupido.
    L'uomo è incredibilmente lento, impreciso e creativo.
    L'insieme dei due costituisce una forza incalcolabile.
    (Albert Einstein)

  3. #3
    Utente di HTML.it
    Registrato dal
    Nov 2009
    Messaggi
    97
    Ciao grazie per la risposta..... fatto ma non va non scrive nella tabella sql ti posto anche la tabella non si sa mai che lerrore sia qui..........

    CREATE TABLE `cronaca` (

    `id` int(11) NOT NULL AUTO_INCREMENT,

    `txt` text NOT NULL,

    `autore` varchar(255) DEFAULT NULL,
    PRIMARY KEY (`id`)
    )

    ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=2 ;



    INSERT INTO `cronaca` (`id`, `txt`, `autore`) VALUES
    (1, '', NULL);

    grazie

  4. #4
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013
    uso i preparedstatement solo in java, e lì il conto dei parametri devi ritornare, nel senso che se dichiaro:
    codice:
    VALUES (?, ?, ?); // 3 parametri
    poi sotto devo valorizzare 3 parametri. Tu dichiari di voler passare 3 parametri, ma ne setti solo 2. Non so se PHP/la classe che stai usando lo faccia fare, ma comincerei col sistemare il conto.
    <´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
    "The answer to your question is: welcome to tomorrow"

  5. #5
    Utente di HTML.it
    Registrato dal
    Nov 2009
    Messaggi
    97
    ok sostituita cosi

    $query = "INSERT INTO cronaca(txt, autore) VALUES('$txt','$autore')";
    $pstm = $cn->prepare($query);// creo uno statement per eseguire query
    $pstm->bindParam(1,$txt,PDO::PARAM_STR);
    $pstm->bindParam(2,$autore,PDO::PARAM_STR);
    $pstm->execute();

    ma no va uguale

  6. #6
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013
    io intendevo più qualcosa del genere:
    codice:
    $query = "INSERT INTO cronaca(txt, autore) VALUES(?,?)";
    $pstm = $cn->prepare($query);// creo uno statement per eseguire query
    $pstm->bindParam(1,$txt,PDO::PARAM_STR);
    $pstm->bindParam(2,$autore,PDO::PARAM_STR);
    $pstm->execute();
    <´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
    "The answer to your question is: welcome to tomorrow"

  7. #7
    Utente di HTML.it L'avatar di las
    Registrato dal
    Apr 2002
    Messaggi
    1,221
    $pstm = $cn->prepare($query);// creo uno statement per eseguire query
    $pstm->bindParam(1,$txt,PDO::PARAM_STR);
    $pstm->bindParam(2,$autore,PDO::PARAM_STR);
    $pstm->execute();

    non capisco perchè l'oggetto da $cn diventa $pstm, non è impossibile, a seconda di come è fatta la classe ..... però gli darei un occhiata perchè è strano come modus operandi.

    e poi ci sarebbe anche questa:

    $cn = getConnessioneDB();

    se è un oggetto dovrebbe essere

    $cn = new getConnessioneDB();

    però anche qui è possibile che ci sia una funzione che restituisce l'oggetto ... anche se mi sembra strano
    Il calcolatore è straordinariamente veloce, accurato e stupido.
    L'uomo è incredibilmente lento, impreciso e creativo.
    L'insieme dei due costituisce una forza incalcolabile.
    (Albert Einstein)

  8. #8
    Utente di HTML.it
    Registrato dal
    Nov 2009
    Messaggi
    97
    fatto le o provate tutte........... non va anche cosi

  9. #9
    Utente di HTML.it L'avatar di las
    Registrato dal
    Apr 2002
    Messaggi
    1,221
    prova a stampare la query subito prima di eseguirla .... magari l'errore è nel contenuto delle variabili
    Il calcolatore è straordinariamente veloce, accurato e stupido.
    L'uomo è incredibilmente lento, impreciso e creativo.
    L'insieme dei due costituisce una forza incalcolabile.
    (Albert Einstein)

  10. #10
    Utente di HTML.it
    Registrato dal
    Nov 2009
    Messaggi
    97
    ma non ci capisco piu niente forse l'errore e di fondo cioè rifare tutto

    mi faresti un esempio per farmi capire meglio come la faresti tu..........

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.