2016-04-19 10 views
6

Ich führe eine mysql-Datenbank (verwaltet über phpmyadmin) auf einer virtuellen Lubuntu-Maschine, die sich auf einem Mac 10.6 befindet. Alles funktioniert reibungslos, bis früher (und ich nicht berühren jeden Teil des Login-Code!), Wenn ich auf meinen Seiten die folgenden Fehler bekommen:Fehler: Zugriff verweigert für Benutzer 'www-data' @ 'localhost'

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

Ich verstehe nicht, wo dieser Fehler kommt aus, wie ich habe einen Benutzer nicht www-data auf phpMyAdmin genannt und meine Dateien sollen den root-Account auf der Datenbank zu verwenden:

$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()); 
} 

nach einigen googeln sah ich, dass die Menschen ihre config.conf Datei geändert aber ich weiß nicht wie oder warum.

+0

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

Antwort

7

Verwenden ein doppeltes Anführungszeichen und die korrekten Parameter für die Connect, die leichter zu bauen ein doppeltes Anführungszeichen und $variable Expansion mit .

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

Danke, das hat diesen Fehler beseitigt, obwohl es scheint, dass ein anderer bereits seinen Platz eingenommen hat ... –

+0

Sie sollten besser eine andere Frage mit Details des nächsten Fehlers – RiggsFolly

+0

eigentlich, es ist in Ordnung, ich habe nur vergessen {weiter unten den Code, der gab mir den weißen Bildschirm des Todes –

3

Der Benutzer und das Passwort sind separate Parameter, http://php.net/manual/en/pdo.connections.php.

Also nehmen Sie die Konkatanation hier->.', '.$dbuser.' , '.$dbpass.

Anschluss sollte sein:

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

Sie könnten überprüfen, dass die Syntax Chris – RiggsFolly

+0

Aha, danke, verpasste das in der ursprünglichen Frage. – chris85

2

versuchen Sie dies:

$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(); 
} 
?> 

diesen Code Versuchen. Klicken Sie auf diesen Link, um weitere Informationen zu erhalten. http://php.net/manual/en/pdo.connections.php

Verwandte Themen