PDA

View Full Version : [php] errore connessione con MySQL


Gius001
18-04-2008, 13:13
Ciao a tutti..
ho un problema.. ho scritto questo script:

<?php

$host = "localhost";
$user = "root";
$password = "miapassw";
$dbname = "mysql";

$cxn = mysqli_connect($host,$user,$password,$dbname) or die("errore di connessione");

echo $cxn;

ma quando lancio il FireFox si visualizza questo messaggio:

Warning: mysqli_connect() [function.mysqli-connect]: [10060] Impossibile stabilire la connessione. Risposta non corretta dell (trying to connect via tcp://localhost:3306) in C:\php\www\query1.php on line 16

Warning: mysqli_connect() [function.mysqli-connect]: (HY000/10060): Impossibile stabilire la connessione. Risposta non corretta della parte connessa dopo l'intervallo di tempo oppure mancata risposta dall'host collegato. in C:\php\www\query1.php on line 16

Fatal error: Maximum execution time of 30 seconds exceeded in C:\php\www\query1.php on line 16

il servere apache e mysql sono avviati..
e my sql da linea di comando finziona..
qualche indea?

cionci
18-04-2008, 13:19
Ma non potevi semplicemente scrivere: [php] errore connessione a MySQL ?
Cosa non ti è chiaro del regolamento di sezione ?

Gius001
18-04-2008, 13:36
hai ragione.. evidentemente in quel momento pensavo che
mysql fosse un linguaggio.. sorry..
se non ho capito male i linguaggi di programmazione vanno messi fra [] giusto?

cionci
18-04-2008, 13:41
Solitamente si mette il linguaggio per primo fra parentesi quadre e dopo l'argomento che si vuole trattare.

Gius001
18-04-2008, 13:53
ricevuto.. non lo sapevo..
scusami di nuovo! starò più attento la prossima volta!
a questo punto la domanda sorge spontanea..
dopo questa nostra conversazione rispondera' qualcuno all mio post?
vuoi che lo riapro?

cionci
18-04-2008, 13:57
Stai facendo girare tutto sulla stessa macchina ?

Se da linea di comando (posizionandoti nella directory bin di mysql) dai questo comando:

mysql -u root -p

e poi immetti la password, si connette tranquillamente ?

Nota che nel codice hai selezionato il database con nome mysql, in teoria quel database non andrebbe mai toccato, le tabelle le devi creare in un altro database.

Gius001
18-04-2008, 14:08
intanto grazie!
comunque questo lo so.. infatti da linea di comando riesco a fare tutto..
creo databases..creo utenti...funziona tutto..
il problema e' che se provo a connettemi lanciando la query da FireFox
non si collega a mysql..

cionci
18-04-2008, 14:13
Prova così:
$host = "127.0.0.1";

Gius001
18-04-2008, 14:21
allora con questo codice:

<?php

$host = "127.0.0.1";
$user = "root";
$password = "miapass";
$dbname = "mysql";

$cxn = mysqli_connect($host,$user,$password,$dbname) or die("errore di connessione");

echo $cxn;

mi dice:

Catchable fatal error: Object of class mysqli could not be converted to string in C:\php\www\query1.php on line 18

cionci
18-04-2008, 14:27
Allora funziona....è normale che non stampi $cxn in quanto $cxn è un oggetto.

Gius001
18-04-2008, 14:52
scusa $cnx non e' una variabile dove viene memorizzato TRUE o FALSE
in base all'esito della connessione?
io programmo in php da poco e'..

cionci
18-04-2008, 15:04
No ;)
http://it.php.net/mysqli_connect

Gius001
18-04-2008, 15:11
Quindi funziona se ricevo quel messaggio?...
va bene allora..
cmq molto gentile.. grazie tanto!

cionci
18-04-2008, 16:57
Sembrerebbe che stia funzionando ;)

arcer
18-04-2008, 18:54
scusate se preciso (lo faccio perche magari si possono creare situazioni in cui magari un utente trova questa discussione che può trarre in inganno)



sulla pagina linkata da cionci c'è da notare una cosa :


Return Values

Returns a object which represents the connection to a MySQL Server or FALSE if the connection failed.

ovvero
Ritorna un OGGETTO che rappresenta la connessione al server Mysql oppure false...

Quindi funziona se ricevo quel messaggio?...

non è del tutto esatto....il codice per la connessione funziona, ma non è che quando ritorna quel messaggio funziona, perche difatto tu stai cercando di far stampare un OGGETTO come una stringa e allora apache si incazza....è li l'errore che ti ha dato



scusate la precisazione ma non si sa mai si creano situazioni di errore...

Superfox
13-09-2010, 23:13
ciao,
scusate se mi aggiungo dopo due anni alla discussione.
Effettivamente avevo lo stesso problema con Windows7/IIS7.5/PHP 5/MySQL 5.1 ed il problema era 'localhost'. Ma non capisco il perchè accade, cioè funziona con 127.0.0.1 e non localhost???

Ho visto che con ASP/OBDC localhost è invece accettato..

Ciau
- sfox