Problema con INSERT INTO

Quando devo salvare nel mio db Mysql una stringa del tipo:

L'italia il paese dell'estate.

Ho provato con "addslashes" senza risultato,

chi mi s dare una dritta ?

Grazie Giovanni

inviato 10 anni fa
bonann23
X 0 X

che tipo di campo ?

scrivi la query qui

:bye:

risposto 10 anni fa
Andrea Turso
Andrea Turso
86
X 0 X

I campi che devo trattare sia in UPDATE:

$mysql=" UPDATE tnotizie SET ";
$mysql. = " titolo ='" . addslashes($titolo) ."',";
$mysql. = " didascalia ='" . addslashes($didascalia) ."'";
$mysql. = " WHERE ";
$mysql. = " id_notizie =" . $id_notizie;

che in INSERT INTO

$mysql="INSERT INTO tnotizie (idautore, data_creazione, titolo, didascalia , idstato)

 VALUES ('$id_utente', '$today', $titolo, $didascalia', '1')";

sono dei campi testo.

grazie Giovanni

risposto 10 anni fa
bonann23
X 0 X

VARCHAR o TEXT ?

se puoi darmi la query della tabella ( create table ... )

poi correggi :

VALUES ('$id_utente', '$today', '$titolo', '$didascalia', '1')";

:bye:

risposto 10 anni fa
Andrea Turso
Andrea Turso
86
X 0 X

il campo del tipo "TEXT"; ma mi piacerebbe sapere anche in presenza di un campo "VARCHAR" come muovermi.

Grazie Giovanni

risposto 10 anni fa
bonann23
X 0 X

il problema secondo me non nel database ma nello script php ... hai corretto la stringa di INSERT INTO innanzi tutto?

poi prova a mettere echo mysql_error(); e vedi se ti da errore

Magic_quotes_gpc attivo ?

incolla questo pezzetto dicodice alla fine del tuo script

<?php 
// non copiare i tag copia sotto -----------------
if(ini_get('magic_quotes_gpc')){
echo 'maigc quotes gpc  on';
}else{
echo 'magic quotes gpc  OFF';
}
echo mysql_error();
// non copiare i tag copia sotto -----------------
?>

e incolla qui quello che produce

:bye:

risposto 10 anni fa
Andrea Turso
Andrea Turso
86
modificato 10 anni fa
X 0 X

Ma gli addslashes sono solo nella update ?!?

risposto 10 anni fa
Gianni Tomasicchio
X 0 X

ecco il risultato

magic quotes gpc OFF

inoltre:

  • il codice per l'UPDATE
$mysql=" UPDATE tnotizie SET ";
$mysql. = " titolo ='" . addslashes($titolo) ."',";
$mysql. = " didascalia ='" . addslashes($didascalia) ."'";
$mysql. = " WHERE ";
$mysql. = " id_notizie =" . $id_notizie;
  • il codice per l'INSERT INTO come v scritto? Ho provato ad aggiungere addslashes; ma non riesco a venirne acapo

Grazie giovanni

risposto 10 anni fa
bonann23
X 0 X

ma non ricevi nessun errore di mysql facendo echo mysql_error(); ?

$mysql="INSERT INTO tnotizie (idautore, data_creazione, titolo, didascalia , idstato)

 VALUES ('".$id_utente."', '".$today."', '".$titolo."', '".$didascalia."', '1');";

avevi scordato due apici nella query

risposto 10 anni fa
Andrea Turso
Andrea Turso
86
X 0 X

e gli addslash per la insert?

risposto 10 anni fa
Gianni Tomasicchio
X 0 X

ups vero :-[

$mysql="INSERT INTO tnotizie (idautore, data_creazione, titolo, didascalia , idstato)

 VALUES ('".$id_utente."', '".addslashes($today)."', '".addslashes($titolo)."', '".addslashes($didascalia)."', '1');";

ID un numero presuppongo che non sia utile addslashes :buck:

risposto 10 anni fa
Andrea Turso
Andrea Turso
86
X 0 X

Ho utilizzato il codice che mi hai postato ed ecco il risultato:

Frase inserita:L'ultimo solo

Risultato:L\'ultimo è solo

Giovanni

risposto 10 anni fa
bonann23
X 0 X

ma lo inserisce no?

prova ad usare htmlentities($var) in modo da sostiruire con &egrave; che sarebbe anche una cosa corretta :)

:bye:

risposto 10 anni fa
Andrea Turso
Andrea Turso
86
X 0 X

Non va!!!!!

Inserimento:L'attiva teminata

Risultato:L'attività è teminata

Codice:$mysql="INSERT INTO tnotizie (idautore, data_creazione, titolo, didascalia , idstato)

VALUES ('".$id_utente."', '".$today."', '". htmlentities($titolo)."', '". htmlentities($didascalia)."', '1')";

Giovanni

risposto 10 anni fa
bonann23
X 0 X

$mysql="INSERT INTO tnotizie (idautore, data_creazione, titolo, didascalia , idstato)

VALUES ('".$id_utente."', '".$today."', '". htmlentities(addslashes($titolo))."', '". htmlentities($didascalia)."', '1')";

la query mi sembra corretta ora devi dirmi :

  • I dati vengono inseriti nel database ?
  • Ricevi nessun errore usando printando mysql_error() ?
  • l'update funziona ora ?

la tringa la devi mostrare in una pagina HTML vero? se cos ti basta fare htmlentities() e quando mostri tutto nella pagina si aggiusta perch le entit vengono convertite nelle lettere corrispondenti dal motore di rendering del browser in base al charset che hai

senno credo ci sia un problema di charset . . . non ci sarebbe altra spiegazione logica al fattoche diventa A o qualcosa del genere

Frase inserita:L'ultimo solo

Risultato:L\'ultimo è solo

risultato : nel database o mostrato in una pagina dopo una select?

:bye:

risposto 10 anni fa
Andrea Turso
Andrea Turso
86
modificato 10 anni fa
X 0 X

I dati vengono passati da un form all'altro con il metodo $_POST, quindi salvati nel database con il risultato che ho gi segnalato.

Giovanni

risposto 10 anni fa
bonann23
X 0 X

In generale la preparazione dei dati da inserire in una query va fatta cos:

<?php
if (!get_magic_quotes_gpc()) {
 $titolo = addslashes($_POST['titolo']);
 $didascalia = addslashes($_POST['didascalia']);
} else {
 $titolo = $_POST['titolo'];
 $didascalia = $_POST['didascalia'];
}

$sql = "INSERT INTO tnotizie (idautore, data_creazione, titolo, didascalia , idstato)
 VALUES ($id_utente, $today, '$titolo', '$didascalia', 1)";
?>

Ho supposto che $id_utente e $today fossero 2 numeri.

I caratteri à è sono dovuti ad un problema di set di caratteri utilizzati per la tabella el DB.

risposto 10 anni fa
Gianni Tomasicchio
X 0 X
I caratteri à è sono dovuti ad un problema di set di caratteri utilizzati per la tabella el DB.

avevo cercato di dirlo prima :) ma non credo che legga attentamente i post ;D

:bye:

risposto 10 anni fa
Andrea Turso
Andrea Turso
86
X 0 X

Gi dai post di ieri mi era chiaro il problema circa il set di caratteri utilizzato dal mio db, perche a fronte del seguente codice di INSERT INTO

$mysql="INSERT INTO tnotizie (idautore, data_creazione, titolo, didascalia , idstato)
       VALUES ('".$id_utente."', '".$today."', '". addslashes($titolo)."', '". addslashes($didascalia) ."', '1')";

non ricevo errori (mysql_error()) e con un echo $mysql ricevo

INSERT INTO tnotizie (idautore, data_creazione, titolo, didascalia , idstato) VALUES ('6', '2006-07-08', 'L\'albergo l\'attivit', 'L\'albergo l\'attivit', '1')

stringa che viene regolarmente salvata.

Purtroppo, e qui si evidenzia il problema al db, a fronte della soprariportata stringa nel db mi ritrovo :L'albergo è l'attivit .

Stranamente, per me nofita, questo problema presente solo nella tabella in questione, perch in altre tabelle, in presenza della stessa stringa, l'INSERT INTO avviene correttamente.

Come posso e devo muorvermi nel db??

risposto 10 anni fa
bonann23
X 0 X

Come verifichi il contenuto del DB? Con un programma o con uno script PHP?

risposto 10 anni fa
Gianni Tomasicchio
X 0 X

non capito bene, comunque

dal mio script con $mysql ottengo i valori dei campi:INSERT INTO tnotizie (idautore, data_creazione, titolo, didascalia , idstato) VALUES ('6', '2006-07-08', 'L\'albergo l\'attivit', 'L\'albergo l\'attivit', '1')

quindi li inserisco in Mysql-front e avvio la query.

il risultato il salvataggio corretto ;

mentre se provo ad effettuare il salvataggio dallo script ottengo l'errore seganalato.

risposto 10 anni fa
bonann23
X 0 X

Ho inserito la stringa:L'ALBERO E' GIALLO , risultato???????

INSERIMENTO EFFETTUATO CORRETTAMENTE!!!!!!!!!!!!!!!!!!!!!!!!!!

Mentre con la stringa:L'albero giallo, ottengo L'albero é rossso

Qualcuno s aiutarmi!!!!!!!!!!!

Giovanni

risposto 10 anni fa
bonann23
X 0 X

scusate l'abero sempre giallo!!!!!!!!!!!!!!!!

risposto 10 anni fa
bonann23
X 0 X

oddio

semplicemente perch L'ALBERO E' GIALLO non ha accento ma ha la virgoletta

invece l'albero giallo c' l'ha.

solo un problema di CHARSET della tabella, controlla che sia LATIN 1 o UTF-8

:bye:

risposto 10 anni fa
Andrea Turso
Andrea Turso
86
X 0 X
Effettua l'accesso o registrati per rispondere a questa domanda