Discussione:
problema ad inserire dati in mySql
(troppo vecchio per rispondere)
Fabry_Shock
2004-09-02 06:52:14 UTC
Permalink
Ciao a tutti,
ho un "piccolo" problema...
ho una pagina web php che prende dati da un form (i dati sono nome e testo)
e li inserisce in un database mySql.
Purtroppo non vengono inseriti.
riporto il codice della paginetta, magari ho fatto errori macroscopici che
qualcuno mi puo' segnalare..

<html>
<head>
<title>Insert</title>
</head>
<body>
<?
# Carico le impostazioni per la connessione.
include("config.inc.php");
$db = mysql_connect($db_host, $db_user, $db_password);
if ($db == FALSE)
die ("Errore nella connessione. Verificare i parametri nel file
config.inc.php");
# Fine impostazioni connessione. Fino qua tutto ok, e' testato!

$ins = 'INSERT INTO `my_fabryshock.blog` ( `id` , `nome` , `testo` )
VALUES ( ``, `$nome`, `$testo`)';
mysql_query($ins,$db);

# Chiudo la connessione.
mysql_close($db);
?>

</body>
</html>

Grazie a tutti.
--
.·Žšš)) -:Š:-
ž.·Ž .·Žšš))
((žž.·Ž .·Ž -:Š:-
-:Š:- ((žž.·Ž Fabry
iuz
2004-09-02 07:02:20 UTC
Permalink
Post by Fabry_Shock
Ciao a tutti,
ho un "piccolo" problema...
ho una pagina web php che prende dati da un form (i dati sono nome e
testo) e li inserisce in un database mySql.
Purtroppo non vengono inseriti.
riporto il codice della paginetta, magari ho fatto errori macroscopici che
qualcuno mi puo' segnalare..
[..]
Post by Fabry_Shock
$ins = 'INSERT INTO `my_fabryshock.blog` ( `id` , `nome` , `testo` )
VALUES ( ``, `$nome`, `$testo`)';
mysql_query($ins,$db);
[..]
io inserirei anche un minimo controllo per le var.. quindi..
$nome = mysql_escape_string($nome);
$testo = mysql_escape_string($testo);

e se id è auto_increment (e credo che lo sia).. allora..
$ins = 'INSERT INTO `my_fabryshock.blog` (`nome`,`testo`) VALUES (`$nome`,
`$testo`)';
--
www.iuz-lab.info
Fabry_Shock
2004-09-02 07:23:32 UTC
Permalink
Post by iuz
io inserirei anche un minimo controllo per le var.. quindi..
$nome = mysql_escape_string($nome);
$testo = mysql_escape_string($testo);
Giusto! grazie...
Post by iuz
e se id è auto_increment (e credo che lo sia).. allora..
$ins = 'INSERT INTO `my_fabryshock.blog` (`nome`,`testo`) VALUES
(`$nome`, `$testo`)';
si, e' autoincrementale..
iuz, ti ringrazio per le dritte. Purtroppo non funziona ancora, pero'..

Fabry
Asso
2004-09-02 07:30:15 UTC
Permalink
Post by Fabry_Shock
$ins = 'INSERT INTO `my_fabryshock.blog` ( `id` , `nome` , `testo` )
VALUES ( ``, `$nome`, `$testo`)';
Usa i doppi apici per aprire e chiudere la stringa che contiene la query di
inserimento

$ins = "INSERT INTO my_fabryshock.blog VALUES ('', 'nome', 'testo')";

altrimenti il parser vede la stringa solo fino aL primo apice
Fabry_Shock
2004-09-02 07:44:01 UTC
Permalink
Post by Asso
Usa i doppi apici per aprire e chiudere la stringa che contiene la
query di inserimento
altrimenti il parser vede la stringa solo fino aL primo apice
:-) :-) :-) :-) :-)
Era proprio quello il problema!!! Grazie tantissimo!!!!


Fabry
Fabry_Shock
2004-09-02 08:08:48 UTC
Permalink
Visto che siete cosi' gentili ed efficienti,
faccio un' altra domandina...
se volessi inserire nel Db un altro campo (oltre a nome e testo) di tipo
data che si compili in automatico con la data di inserimento nel Db, come mi
devo comportare?

grazie
Fabry
Francesco
2004-09-02 09:00:31 UTC
Permalink
Post by Fabry_Shock
se volessi inserire nel Db un altro campo (oltre a nome e testo) di tipo
data che si compili in automatico con la data di inserimento nel Db, come mi
devo comportare?
Puoi inserire un campo all'interno della tabella:

ALTER TABLE `tabella` ADD `data` TIMESTAMP NOT NULL ;

Ad ogni query insert, aggiungera il valore mysql NOW() che è un timestamp
tipo 20040902105516 (anno, mese, giorno, ora, minuti, secondi)

Oppure nelle query di insert puoi inserire la funzione time() di php che
restituisce il timestamp in secondi

es:
mysql_query("insert into tabella values ('', 'valore1', 'valore2',
".time().")");
iuz
2004-09-02 11:07:17 UTC
Permalink
Post by Asso
Post by Fabry_Shock
$ins = 'INSERT INTO `my_fabryshock.blog` ( `id` , `nome` , `testo` )
VALUES ( ``, `$nome`, `$testo`)';
Usa i doppi apici per aprire e chiudere la stringa che contiene la query
di inserimento
$ins = "INSERT INTO my_fabryshock.blog VALUES ('', 'nome', 'testo')";
altrimenti il parser vede la stringa solo fino aL primo apice
anche se il problema così è risolto non era quello il motivo poichè "'" !=
"`"..
la soluzione è però giusta perchè senza i doppi apici $nome non viene
sostituito dalla var $nome ma viene passato così come è causando un errore
prova a fare un mysql_error() e posta il risultato.. solo per curiosità..
--
www.iuz-lab.info
Loading...