phpBB Italia chiude!
phpBB Italia ringrazia tutti gli utenti che hanno dato fiducia al nostro progetto per ben 9 anni, e che, grazie al grande lavoro fatto da tutto lo Staff (rigorosamente a titolo gratuito), hanno portato il portale a diventare il principale punto di riferimento italiano alla piattaforma phpBB.

Purtroppo, causa motivi personali, non ho più modo di gestirlo e portarlo avanti. Il forum viene ora posto in uno stato di sola lettura, nonché un archivio storico per permettere a chiunque di fruire di tutte le discussioni trattate.

Il nuovo portale di assistenza per l'Italia di phpBB diventa phpBB-Store.it, cui ringrazio per aver deciso di portare avanti questo grande progetto.

Grazie ancora,
Carlo - Amministratore di phpBB Italia

Errore nel creare un record

Area di discussione relativa al linguaggio di programmazione web più conosciuto. Il forum è dedicato anche a MySQL, la piattaforma di database più utilizzata con il PHP.
Avatar utente
Lady R
phpBB Expert
phpBB Expert
Messaggi: 900
Iscritto il: 08/11/2011, 13:43
Sesso: Femmina
Versione: 3.0.9
Server: UNIX/Linux
PHP: 5.3.8
Database: MySQLi
Contatta:

Errore nel creare un record

Messaggio da Lady R » 21/11/2011, 14:58

Ciao,
sto sviluppando uno script in PHP e MySQL, ma ho un problema che non riesco a risolvere.

Eseguo questa Query:

Codice: Seleziona tutto

INSERT 
	INTO psw_users (`username`, `email`, `password`, `title`)
	VALUES (`Remedy Memory`, `mia@email.it`, `segreta`, Principiante)
Il database:

Codice: Seleziona tutto

id	int(11)				
 2	username	text		utf8_bin		
 3	email		text		utf8_bin		
 4	password	text		utf8_bin	
 5	title		text		utf8_bin		
 6	level		int(11)		
 7	pe			int(11)		
 8	fame		 int(11)		
 9	honor		float			
L'errore è:

Codice: Seleziona tutto

Unknown column 'Remedy Memory' in 'field list'
Se sostituisco Remedy Memory con username, trova la colonna e prosegue con la colonna email, dando un errore analogo..

In pratica prende quelli che io intendo come valori e li usa come nomi delle colonne!
Ma dove sbaglio? :(

Avatar utente
Micogian
Leader Programmatori
Leader Programmatori
Messaggi: 3704
Iscritto il: 07/01/2010, 8:51
Versione: 3.2.0
Server: UNIX/Linux
PHP: 5.4.36
Database: MySQL 5.1.70-log
Località: Udine
Contatta:

Re: Errore nel creare un record

Messaggio da Micogian » 21/11/2011, 15:08

Togli gli apici dai nomi dei campi.

EDIT:
Quello è un script PHP, se lo devi usare in phpbb dovresti fare così:

Codice: Seleziona tutto

sql = "INSERT    INTO " . USERS_TABLE . " (username, email, password, title)
   VALUES (`Remedy Memory`, `mia@email.it`, `segreta`, 'Principiante')";
	if ($db->sql_query($sql))
	{
       $msg = "Inserimento eseguito correttamente";
       }else{
      $msg = "Errore nella procedura";
       }
 

Avatar utente
Lady R
phpBB Expert
phpBB Expert
Messaggi: 900
Iscritto il: 08/11/2011, 13:43
Sesso: Femmina
Versione: 3.0.9
Server: UNIX/Linux
PHP: 5.3.8
Database: MySQLi
Contatta:

Re: Errore nel creare un record

Messaggio da Lady R » 21/11/2011, 15:24

Da comunque errore

Codice: Seleziona tutto

INSERT 
   INTO psw_users (`username`, `email`, `password`, `title`)
   VALUES (Remedy Memory,mia@email.it,segreta,Principiante)

Codice: Seleziona tutto

#1064 - 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 'Memory,mia@email.it,segreta,Principiante)' at line 3
Ho notato che se inserisco solo valori numerici non da errori

Avatar utente
Micogian
Leader Programmatori
Leader Programmatori
Messaggi: 3704
Iscritto il: 07/01/2010, 8:51
Versione: 3.2.0
Server: UNIX/Linux
PHP: 5.4.36
Database: MySQL 5.1.70-log
Località: Udine
Contatta:

Re: Errore nel creare un record

Messaggio da Micogian » 21/11/2011, 15:28

hO detto "campi" non valori, Vedi il mio EDIT precedente.

A meno che, essendo un INSERT non debba indicare tutti i campi, anche se i valori sono vuoti.

Tra l'altro, nella prima query avevi dimenticato gli apici su "Principiante", magari è tutto lì il problema.

Avatar utente
Lady R
phpBB Expert
phpBB Expert
Messaggi: 900
Iscritto il: 08/11/2011, 13:43
Sesso: Femmina
Versione: 3.0.9
Server: UNIX/Linux
PHP: 5.3.8
Database: MySQLi
Contatta:

Re: Errore nel creare un record

Messaggio da Lady R » 21/11/2011, 15:30

No non lo devo usare in phpBB però.

non credo sia necessario.. sennò a cosa serve indicare i valori di default dei campi? e l'indice con l'auto_increment a cosa serve?

Non è neanche il problema su Principiante, perché mettendoli non cambia niente, e comunque l'errore viene dato prima di raggiungere quel valore
Ultima modifica di Lady R il 21/11/2011, 15:38, modificato 1 volta in totale.

Avatar utente
Micogian
Leader Programmatori
Leader Programmatori
Messaggi: 3704
Iscritto il: 07/01/2010, 8:51
Versione: 3.2.0
Server: UNIX/Linux
PHP: 5.4.36
Database: MySQL 5.1.70-log
Località: Udine
Contatta:

Re: Errore nel creare un record

Messaggio da Micogian » 21/11/2011, 15:37

Pel l'auto-increment d'accordo, gli altri campi prenderanno i valori predefiniti, ma nel tuo esempio mancavano gli apici a Principiante che è una stringa.
Per me va così:

Codice: Seleziona tutto

INSERT
   INTO psw_users (username, email, password, title)
   VALUES (`Remedy Memory`, `mia@email.it`, `segreta`, 'Principiante');

Avatar utente
Lady R
phpBB Expert
phpBB Expert
Messaggi: 900
Iscritto il: 08/11/2011, 13:43
Sesso: Femmina
Versione: 3.0.9
Server: UNIX/Linux
PHP: 5.3.8
Database: MySQLi
Contatta:

Re: Errore nel creare un record

Messaggio da Lady R » 21/11/2011, 15:38

No, dice:

Codice: Seleziona tutto

Unknown column 'Remedy Memory' in 'field list'

Avatar utente
Micogian
Leader Programmatori
Leader Programmatori
Messaggi: 3704
Iscritto il: 07/01/2010, 8:51
Versione: 3.2.0
Server: UNIX/Linux
PHP: 5.4.36
Database: MySQL 5.1.70-log
Località: Udine
Contatta:

Re: Errore nel creare un record

Messaggio da Micogian » 21/11/2011, 15:46

Ma, io ho sempre fatto così

Codice: Seleziona tutto

$sql = "INSERT INTO tabella (campo1, campo2, campo3, campo4) VALUES ('uno', 'due', 'tre', 'quattro' )";
$result = mysql_query ($sql);
i campi senza virgolette, le stringhe invece si. I numeri senza virgolette, punto e virgola alla fine.

Avatar utente
Lady R
phpBB Expert
phpBB Expert
Messaggi: 900
Iscritto il: 08/11/2011, 13:43
Sesso: Femmina
Versione: 3.0.9
Server: UNIX/Linux
PHP: 5.3.8
Database: MySQLi
Contatta:

Re: Errore nel creare un record

Messaggio da Lady R » 21/11/2011, 15:48

non cambia niente a passargli una variabile contenente la query o passargli direttamente la query..

non capisco dove sia il problema :(

Avatar utente
Micogian
Leader Programmatori
Leader Programmatori
Messaggi: 3704
Iscritto il: 07/01/2010, 8:51
Versione: 3.2.0
Server: UNIX/Linux
PHP: 5.4.36
Database: MySQL 5.1.70-log
Località: Udine
Contatta:

Re: Errore nel creare un record

Messaggio da Micogian » 21/11/2011, 15:58

Lady R ha scritto:non cambia niente a passargli una variabile contenente la query o passargli direttamente la query..

non capisco dove sia il problema :(
Questo è vero ma nella tua prima query non andavano gli apici nei campi, il valore Principiante non aveva gli apici e mancava il punto e virgola finale.

L'alternativa sarebbe questa:

Codice: Seleziona tutto

INSERT INTO psw_users SET username= 'Remedy Memory', email = 'mia@email.it', password = 'segreta', title = 'Principiante' 
Ho notato una differenza tra gli apici che usi tu e i miei, che sia quello ? Prova con le virgolette

Rispondi

Torna a “PHP - MySQL”

Chi c’è in linea

Visitano il forum: Nessuno e 52 ospiti