Newsgroup: it.comp.www.php
Titolo: Cos'è successo al mio db?

Non capisco sto sviluppando delle sezioni di un sito che prevedono l'accesso 
ad un db, quindi creo nuove tabelle etc...
Ora torna ad una vecchia sezione sempre funzionante e mi esce un errore da 
una query:
mysql_query() [function.mysql-query]: Access denied for user ''@'localhost' 
(using password: NO) in...
Vado a vedere la stringa incriminata č una query del tipo:
 $lista_query = mysql_query("SELECT * from stats_query WHERE idutente = 
".$_SESSION["myuserid"]." ORDER BY id asc");
Non capisco il perchč dell'errore di cui sopra.
Questa sezione ha sempre funzionato non l'ho piů toccata ed inoltre, la 
query, se eseguita dalla sezione SQL di phpmyadmin viene correttamente 
eseguita e restituisce i giusti risultati.
Dove sbaglio?


io direi nella stringa di connessione a monte. A leggere l'errore stai 
autenticandoti con l'utente '@'localhost
-- 
Z.

 autenticandoti con l'utente '@'localhost
Ed č la spiegazione piů diffusa che ho trovato in rete ma non credo sia 
quella.
Anche perchč se commento quella query le altre contenute nella pagina 
vengono tutte eseguite senza errore. 

 vengono tutte eseguite senza errore.
Eppure l'errore è proprio quello.
Crea un file .php, mettici dentro 4 righe: la connessione con
mysql_connect, la selezione del db con mysql_select_db, quella query,
e mysql_close e vedi se ti dà errore.
Non è che hai un qualche include/funzione/error handler che killa la
connessione primaria prima di arrivare a quella query, o qualcosa del
genere?

<Crea un file .php, mettici dentro 4 righe: la connessione con
<mysql_connect, la selezione del db con mysql_select_db, quella query,
<e mysql_close e vedi se ti dà errore.
Esperimento fatto, il file di 4 righe funziona. :( 

 ".$_SESSION["myuserid"]." ORDER BY id asc");
Prova a comporre la query dentro una stringa e, prima di passarla a 
mysql_query, visualizzarla.


Allora per forza di cose succede qualcosa alla connessione dal punto
in cui la effettui fino alla query.
A occhio e croce c'è una funzione che la 'sovvrascrive'.
Quando ti colleghi, immagino fai qualcosa tipo:
$dblink = mysql_connect(...);
Modifica la query incriminata con
mysql_query([tua_query], $dblink);
da: 
http://it.php.net/manual/en/function.mysql-query.php
e per comodità, abituati a passare sempre l'istanza della connessione
alle funzioni mysql_*

 Dove sbaglio?
Lo script di connessione al db è nella stessa pagina o lo includi
nella pagina chiamante tramite un include?
Potrebbe essere che magari non trova la pagina perchè gli dai un path
non corretto e non vede lo script in cui c'è la connessione.. a volte
basta una svista...

 ha scritto nel messaggio 
news:16e8bc07-52c7-4f5e-9f20-
<Lo script di connessione al db è nella stessa pagina o lo includi
<nella pagina chiamante tramite un include?
<Potrebbe essere che magari non trova la pagina perchè gli dai un path
<non corretto e non vede lo script in cui c'è la connessione.. a volte
<basta una svista...
La parola include m'ha fatto balzare alla testa un campanellino.
In realtà prima della query c'è un include che chiama un file all'interno 
del quale c'è un'altra query... trovato l'inghippo.
Grazie a tutti. 

 Mi vengono in brividi.
:) Immagino, ma non ti preoccupare, il mio è un hobby, tutta roba ad uso mio 
e di pochi amici. 

 possibile per sciare male, visto che è un hobby ... ;)
Touche'... ;) ma se sciare è un hobby potresti ritrovarti a sciar male anche 
senza aver "progettato" di farlo. :) 

 senza aver "progettato" di farlo. :)
Marzullo è già arrivato? :P