ok, forse ora riesco a connettermi a phpMyAdmin, ma tramite l'inserimento di password e username
facendo girare il programma mi esce il messaggio di prima
ho poi definito la costante per il nome del database cosìCatchable fatal error: Object of class mysqli could not be converted to string in C:\Program Files\EasyPHP-12.0\Capitolo6\test_connessione.php on line 5
define('DB_PROVA', 'db_prova');
perchè ho pensato se eventualmente ne creassi un altro di db, in modo da ben differenziare i nomi dei vari db
quindi ricapitolando
ho modificato la password di phpMyAdmin con "oba".
il file esternoconfigurazione_credenziali_esterno.phped il test di connessionecodice:<?php define('DB_USERN','root'); //username define('DB_PSW','oba'); //password define('DB_HOST','localhost'); //host define('DB_PROVA','db_prova'); //db ?>
codice:<?php require_once('configurazione_credenziali_esterno.php'); $link = mysqli_connect(DB_HOST, DB_USERN, DB_PSW) or die("Errore connessione: ". mysqli_connect_error()); $dbw = mysqli_select_db("$link", DB_PROVA) or die("Errore apertura database: " . mysqli_error($link)); ?>
Ultima modifica di Alfoxx; 12-09-2016 a 13:27 Motivo: q
ho modificato il messaggio
Questa cosa non ha senso.define('DB_PROVA','db_prova'); //db
perchè ho pensato se eventualmente ne creassi un altro di db, in modo da ben differenziare i nomi dei vari db
Una costante si usa in modo da non dover andare a cambiare la stringa ad essa associata in giro per il codice dove la usi.
Con la tua logica, se decidi di cambiare il nome del db in "altro_db" dovresti cambiare il define in
define('ALTRO_DB','altro_db');
e andare a cambiare DB_PROVA in ALTRO_DB ovunque nel codice, rendendo inutile l'uso della costante.
Chiama quella costante DB_NAME ed associagli il nome effettivo del db.
Altra cosa:
mysqli_select_db("$link", DB_PROVA)
gli apici attorno a $link non servono.
allora il problema era proprio questa istruzione
che non richiedeva gli apici.codice:mysqli_select_db($link, DB_PROVA)
Ora non mi si mostra nessun messaggio.
Ma ora come faccio a sapere se sono connesso? andando in Ispeziona pagina - Resouces non vedo in "web sql" o "local storage" il db_prova
Per quanto riguarda il nome dei vari db che posso creare io pensavo a qualcosa del genere:
se creo un db "catalogo", oppure uno "iscritti" o uno "foto", pensavo di definirli così di volta in volta nel file esterno
codice:define('DB_CATALOGO','catalogo'); define('DB_ISCRITTI','iscritti'); define('DB_FOTO','db_foto');
Se faccio
e se dovessi creare un altro db dovrei averecodice:define('DB_NAME','db_prova');
penso che troverei più comodo la soluzione precedente....codice:define('DB_NAME1','catalogo');
Secondo me non hai capito la differenza tra database e tabella o comunque non hai capito come funziona.
Un database può contenere molte tabelle, non devi fare un database per ogni tabella che ti serve.
Per sapere se sei connesso al db devi eseguire qualche query, ma se non ricevi errori direi che la connessione è andata a buon fine.
Trova un qualche tutorial e seguilo, non quello di html.it perché è fermo a vecchie istruzioni, cerca una guida per MySQLi o meglio ancora PDO.
Visto che stai imparando è meglio che impari direttamente PDO.
Prima studia anche qualcosa sui database.