2016-04-19 21 views
6

Sto eseguendo un database mysql (gestito tramite phpmyadmin) su una macchina virtuale di lubuntu, che è anch'essa su mac 10.6. Tutto stava funzionando senza intoppi fino in precedenza, (e non ho toccato una qualsiasi parte del codice di login!), Quando ho ottenuto il seguente errore nelle mie pagine:Errore: accesso negato per utente 'www-data' @ 'localhost'

Erreur : SQLSTATE[28000] [1045] Access denied for user 'www-data'@'localhost' (using password: NO)

non capisco dove questo errore è in arrivo da come io non ho un utente chiamato www-data su phpMyAdmin e miei file dovrebbero essere utilizzando l'account di root sul database:

$dbname = 'name'; 
$dbuser = 'root'; 
$dbpass = '*****'; 
$dbhost = 'localhost'; 
try{ 
    $linkpdo = new PDO('mysql:host='.$dbhost.';'.$dbname.', '.$dbuser.' , '.$dbpass); 
    $linkpdo -> setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); 
} 
catch (Exception $e) { 
    die('Erreur : '.$e->getMessage()); 
} 

Dopo un po 'googling ho visto che la gente modificati loro lima config.conf , ma non so come o perché.

+0

'$ linkpdo = nuovo PDO (" mysql: host = '". $ Dbhost."'; Dbname = '". $ Dbname."' ", $ Dbuser, $ dbpass); ' –

risposta

7

utilizzare una stringa doppia citata e i parametri corretti per la connessione, la sua più facile costruire utilizzando una stringa doppia citata e $variable espansione .

$linkpdo = new PDO("mysql:host=$dbhost;dbname=$dbname", $dbuser, $dbpass); 
    $linkpdo -> setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); 
+0

grazie, che si è sbarazzato di quell'errore, anche se sembra che un altro abbia già preso il suo posto ... –

+0

Faresti meglio a fare un'altra domanda con i dettagli del prossimo errore – RiggsFolly

+0

in realtà, va bene, ho appena dimenticato un {più in giù il codice che mi ha dato lo schermo bianco della morte –

3

L'utente e la password sono parametri separati, http://php.net/manual/en/pdo.connections.php.

Quindi portare qui la concatenazione->.', '.$dbuser.' , '.$dbpass.

collegamento dovrebbe essere:

$linkpdo = new PDO('mysql:host='.$dbhost.';dbname='. $dbname, $dbuser, $dbpass);  
+2

Si potrebbe voler verificare che la sintassi Chris – RiggsFolly

+0

Aha, grazie, perso che nella domanda originale. – chris85

2

Prova questo:

$linkpdo = new PDO('mysql:host='.$dbhost.';dbname='.$dbname , $dbuser, $dbpass); 
5
<?php 

$dsn = 'mysql:dbname=name;host=localhost'; 
$user = 'root'; 
$password = '*****'; 


try { 
    $dbh = new PDO($dsn, $user, $password); 
} catch (PDOException $e) { 
    echo 'Connection failed: ' . $e->getMessage(); 
} 
?> 

provare questo codice. Controlla questo link per maggiori dettagli http://php.net/manual/en/pdo.connections.php

Problemi correlati