Ciao a tutti ragazzi
vorrei sapere il da farsi in ambito memorizzazione in db di testo immesso in una textarea, e la sua successiva lettura dal db.
Poichè il tema è simile per tutti le tipologie di campi form (textarea,checkbox, radio, select) ho voluto creare nel mio database di prova (chiamato "db_prova") una tabella dal nome "campi".
Questa tabella "campi" ha questi campi colonna : "id" (INT), "textarea", "checkbox", "radio", "select" (tutti e quattro VARCHAR).
Non so se è la tabella piu' adatta per capire questo argomento, ma mi è sembrata quella piu' semplice per il momento.
Ho creato una pagina html , dove c'è appunto la textarea ed un tasto che richiama l'applicazione "memorizzo-textarea.php".
codice:<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>vediamo come memorizzare textarea</title> </head> <body> <h3>voglio memorizzare textarea</h3> <form method="post" action ="memorizzo-textarea.php"> Messaggio : <br> <textarea cols="50" rows="5" name = "messaggio"></textarea> <input type="submit" value ="invia dati"> </form> </body> </html>
"memorizzo-textarea.php", in questa applicazione viene utilizzata l'istruzione php htmlentities(stringa), per convertire i possibili caratteri > o < ( o altri) che possono essere immessi nella textarea, e che possono memorizzare cose strane nel db, che poi quando lo si va a leggere vengono male interpretati.
codice:<?php require_once('configurazione_credenziali_esterno.php'); $link = mysqli_connect(DB_HOST, DB_USERN, DB_PSW) or die("Errore connessione: ". mysqli_connect_error()); $dbw = mysqli_select_db($link, DB_PROVA) or die("Errore apertura database: " . mysqli_error($link)); $mess=htmlentities($_POST['messaggio']); $strsql = "INSERT INTO campi(textarea,checkbox,radio,select) VALUES ('$mess','-','-','-')"; $rs = mysqli_query($link, $strsql) or die("Errore query database: " . mysqli_error($link)); if($rs){ echo"Inserimento avvenuto con successo"; echo"$mess"; } ?>
Poich� mi compariva questo errore " Errore query database: Field 'select' doesn't have a default value" ho dovuto immettere i trattini nella query anche per tutti gli altri campi della tabella, ma cmq non risolvo perch� mi compare un problema del genere
Errore query database: Errore di sintassi nella query SQL vicino a 'select) VALUES ('scrivo questa cosa nella textarea','-','-','-')' linea 1
Poi il programma "leggere-textarea.php"
codice:<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>vediamo come leggere textarea</title> </head> <body> <h3>voglio leggere textarea</h3> <?php require_once('configurazione_credenziali_esterno.php'); $link = mysqli_connect(DB_HOST, DB_USERN, DB_PSW) or die("Errore connessione: ". mysqli_connect_error()); $dbw = mysqli_select_db($link, DB_PROVA) or die("Errore apertura database: " . mysqli_error($link)); $strsql = "SELECT textarea FROM campi"; $rs = mysqli_query($link, $strsql) or die("Errore query database: " . mysqli_error($link)); ?> <p><?php echo htmlentities(textarea)?></p> </body> </html>
Cosa posso fare? sembrava che andasse tutto bene logicamente...

Rispondi quotando
