[EASYPHP] Connessione database in locale

Scar991

Utente Attivo
30 Apr 2012
167
0
0
Salve a tutti!
Dovrei implementare un database in locale, ed ho installato EasyPHP.
Ho creato il database e la tabella al suo interno.

Ora, nel mio codice ho inserito la query di scrittura e naturalmente inserito le stringhe per l'accesso al database, ma c'è qualcosa che non funziona e non riesco a scrivere nel db, immagino sia un problema di connessione allo stesso, perché non mi vengono dati errori...

Il mio codice è il seguente

PHP:
$dbhost = "127.0.0.1";
$dbuser = "";
$dbpwd = "";
$dbname = "NOME_DB";

$connessione=mysql_connect($dbhost,$dbuser,$dbpwd);
$dbsel = mysql_select_db($dbname, $connessione);

Ho provato anche con

PHP:
$conn=mysql_connect("localhost", "root", ""); //inserito anche 127.0.0.1 al posto di localhost, ma uguale
	$sel_db=mysql_select_db("NOME_DB", $conn);

Qualcuno sa aiutarmi?
 
ciao
localhost è giusto
prova così e gaurda se ti da errore
PHP:
<?php
$dbhost = "localhost";
$dbuser = "root";
$dbpwd = "password";
$dbname = "NOME_DB"; 
$connessione=mysql_connect($dbhost,$dbuser,$dbpwd)or die (mysql_error());
$dbsel = mysql_select_db($dbname, $connessione)or die (mysql_error());
?>
se non ti da errore, l'errore è nella INSERT
 
Se inserisco la password, mi da errore, di preciso:

Warning: mysql_connect(): Access denied for user 'root'@'localhost' (using password: YES) in C:\Program Files (x86)\EasyPHP-DevServer-13.1VC9\data\localweb\www\check_codice.php on line 8
Access denied for user 'root'@'localhost' (using password: YES)
 
ciao, prova a scaricare la versione di easyphp personal web hosting, quella che hai tu è per devlopment, probabile che root abbia già qualche passwd impostata di default.
 
E' la versione che ho io, quella per developer... Vedrò di scaricare magari la versione precedente e provare
 
Inoltre il mio inserimento:

PHP:
$INSERIMENTO = "INSERT INTO 'elenco_libri' ('CODICE', 'CATEGORIE', 'AUTORE', 'TITOLO', 'CASA_EDITRICE', 'ANNO', 'LUOGO') VALUES ('$Codice', '$Categoria', '$Autore', '$Titolo', '$CasaEditrice', '$Citta')";
			
			$insert = mysql_query($INSERIMENTO) or die ('Non avvenuto');

In teoria dovrebbe apparire il "non avvenuto" se non avvenisse, possibile che non mi scrive nulla e torna tutto normale??
 
ciao
intanto togli gli apici,
poi prova a scriverla così si dovrebbe vedere meglio
PHP:
<?php
//dati di connessione ?
$inserimento= "INSERT INTO elenco_libri(CODICE, CATEGORIE, AUTORE, TITOLO, CASA_EDITRICE, ANNO, LUOGO) VALUES ('$Codice', '$Categoria', '$Autore', '$Titolo', '$CasaEditrice', '$Citta')";
if(mysql_query($inserimento)){
	echo "inserimento OK";
}else{
	echo "inserimento KO";
}
?>
oppure meglio così
PHP:
<?php
//dati di connessione ?
$inserimento= "INSERT INTO elenco_libri(CODICE, CATEGORIE, AUTORE, TITOLO, CASA_EDITRICE, ANNO, LUOGO) VALUES ('$Codice', '$Categoria', '$Autore', '$Titolo', '$CasaEditrice', '$Citta')";
var_dump(mysql_query($inserimento);
/*
se il var_dump ti restituisce
BOOL FALSE la query è fallita
RESOURCE la query è andata a buon fine
*/
?>
la verifica migliore è coumunque con phpmyadmin andare a vedere se il record è stato scritto

altro piccolo consiglio: usa il minuscolo nei nomi di variabili e nei nomi dei campi si evitano errori, poi in php è convenzione che i nomi delle variabili siano minuscole (le costanti maiscolo)
 
Grazie per i consigli, borgo, me ne ricorderò :)

C'era un piccolo errore nell'if che non mi faceva arrivare alla parte della query...
Tuttavia, ho usato il var_dump e mi viene fuori bool(false)

Quindi penso che se la query è fatta bene, il problema è nella connessione... Ho provato ancora ogni combinazione possibile, proprio zero... Se gli inserisco la password mi da errore, quindi non credo sia impostata... Che si può fare?
 
guarda se andando in administration -> modules -> phpmyadmin -> open, riesci a entrare in phpmyadmin, se si vedi se root ha una passwd settata.. al massimo prova a creare un utente e provi con quello a loggarti al database :)
 
Niente, neanche col nuovo utente, e password non ce ne sono...
Nessuno può mostrarmi un esempio di un codice testato su easyphp?

Non capisco dove sbaglio, se devo eliminare tutti i database, se devo crearne venticinque nuovi con dentro settanta tabelle o se sbaglio il 'percorso' :S
 
Molto più semplice la versione, grazie Rey...
Il problema persiste ancora...

O meglio, sono sicuro che la connessione avvenga, ma il var_dump restituisce bool(false)

Incollo qui il codice, non vorrei aver sbagliato proprio la query, sebbene non pensi sia così!

PHP:
// controllo sul tasto premuto. Se viene premuto salva, parte il controllo sui campi e l'assegnazione delle voci nelle variabili. 
// Ogni errore si 'aggiunge' alla variabile $errori. 
// Controllo, se la variabile è piena, torno alla pagina e correggo gli errori, altrimenti mi collego al db e scrivo (ma non scrive!!)

if ($errori != '') {
		echo "<meta http-equiv='Refresh' content='0; URL=./add_new.php'>";
		} else {
			$dbhost = "localhost";
			$dbuser = "root";
			$dbname = "name_db";

			$connessione=mysql_connect($dbhost,$dbuser,'') or die (mysql_error());
			$dbsel = mysql_select_db($dbname, $connessione) or die (mysql_error());
			
			$INSERIMENTO = "INSERT INTO elenco_libri (CODICE, CATEGORIA, AUTORE, TITOLO, CASA_EDITRICE, ANNO, LUOGO) VALUES ('$Codice', '$Categoria', '$Autore', '$Titolo', '$CasaEditrice', '$Citta')";
			
			var_dump(mysql_query($INSERIMENTO)); //il risultato è bool(false)
		}
	}

vedete qualcosa che non va?
 
Ciao, Se hai installato mysql di base non dovrebbe
esserci alcuna pass per l'utente root.
prova a connetterti così:
Se non riesci verifica i permessi di lettura e scrittura.

PHP:
 if ($errori != '') {
     echo "<meta http-equiv='Refresh' content='0; URL=./add_new.php'>";
    } else {
      $dbhost = "localhost";
      $dbuser = "root";
      $dbpass = ""; 
      $dbname = "name_db";
      

      $connessione=mysql_connect($dbhost,$dbuser,$dbpass'') or die (mysql_error());
      $dbsel = mysql_select_db($dbname, $connessione) or die (mysql_error());
            
      $INSERIMENTO = "INSERT INTO elenco_libri 
     (CODICE, CATEGORIA, AUTORE, TITOLO, CASA_EDITRICE, ANNO, LUOGO) 
      VALUES
    ('$Codice', '$Categoria', '$Autore', '$Titolo', '$CasaEditrice', '$Citta')";
          var_dump(mysql_query($INSERIMENTO)); 
        }
    }
 
Questa è la lista utenti, come potete vedere sia 'root' che '127.0.0.1' hanno tutti i permessi attivi

IMG.png

PHP:
if ($errori != '') {
		echo "<meta http-equiv='Refresh' content='0; URL=./add_new.php'>";
		} else {
			$dbhost = "localhost";
			$dbuser = "root";
			$dbname = "db_name";
			$dbpass = "";

			$connessione=mysql_connect($dbhost,$dbuser,$dbpass) or die (mysql_error());
			$dbsel = mysql_select_db($dbname, $connessione) or die (mysql_error());
			
			$INSERIMENTO = "INSERT INTO elenco_libri (CODICE, CATEGORIA, AUTORE, TITOLO, CASA_EDITRICE, ANNO, LUOGO) VALUES ('$Codice', '$Categoria', '$Autore', '$Titolo', '$CasaEditrice', '$Citta')";
			
			var_dump(mysql_query($INSERIMENTO));
		}

Ho fatto la modifica che mi hai proposto, eppure il risultato è sempre lo stesso... Non capisco cosa c'è che non va...
 
SONO UN EMERITO CRETINO!
Avevo saltato una delle voci della insert e di conseguenza mi dava bool false! Ora funziona tutto! Grazie mille ragazzi!
 
ciao
SONO UN EMERITO CRETINO!
non preuccuparti era sfuggito anche a noi :(
dimenticavo, da quello che ho capito sei agli inizi, giusto?
quindi impara ad utilizzare il var_dump è l'ideale per fare il debug degli script (e probabilmente non esiste script che non abbia qualche bug).
 
Ultima modifica:

Discussioni simili