2017-02-02 6 views
-1

Ich habe eine Frage, die wirklich mein Verständnis der Arbeit mit PHP und MySQL stört. Das Problem ist, wenn ich versuche, eine Verbindung zu meiner Online-DB herzustellen. Wenn ich meinen Code wie folgt schreiben:PHP MySQL Verbindungsfehler

define('DB_NAME', 'name'); 
define('DB_USER', 'user'); 
define('DB_PASS', 'pass!'); 
define('DB_HOST', 'localhost'); 

ich ohne Probleme anschließen. Großartig, das funktioniert! Aber, wenn ich so eine Verbindung herstellen möchten:

$servername = "localhost"; 
$username = "user"; 
$password = "pass"; 
$dbname = "name"; 
$conn = new mysqli($servername, $username, $password, $dbname); 

ich diesen Fehler: „Zugriff verweigert für User ...“

Kann mir jemand bitte helfen Sie mit diesem dummen Problem?

+0

Vielleicht verwenden Sie zwei verschiedene Passwörter? – arkascha

+0

nein, das ist nur ein Typfehler hier;) –

+0

Es gibt keine anderen Variablen auf der Seite namens $ Servername, $ Benutzername, $ Passwort oder $ Datenbankname? Die Verbindung versucht nicht innerhalb einer Funktion eingerichtet zu werden? –

Antwort

-1

Dies passiert einige Zeit, weil Sie Benutzername und Passwort der Datenbank geändert haben oder Sie können versuchen, Ihren Benutzer als root und Passwort leer zu machen.

+0

Aber ich habe Root-Privilegien für diesen Benutzer –

+0

und es funktioniert für den ersten Verbindungstyp. –

+0

Dies ist nur eine Weitwinkelaufnahme, ohne das tatsächliche Problem zu kennen. – arkascha

-1

Try this:

$mysql_host  = 'localhost'; 
$mysql_user  = 'user'; 
$mysql_password = 'pass'; 
$mysql_database = 'localhost'; 
$conn = mysql_connect($mysql_host, $mysql_user, $mysql_password); 
@mysql_select_db($mysql_database); 

auch den privelges für diesen Benutzer überprüfen.

+0

Ich bekomme in diesem Fall keinen Fehler ... Warum ist das? –

+0

Wir benutzen 'mysqli_ *' nicht mysql_ * mysql wird nicht mehr unterstützt, und das Unterdrücken von Fehlern mit '@' tut dir keinen Gefallen –

0

Dieser Code funktioniert für beide Optionen

<?php 

//Creates static credentials 
define('DB_NAME', 'data'); 
define('DB_USER', 'root'); 
define('DB_PASSWORD', ''); 
define('DB_HOST', 'localhost'); 


//Creates connection to the database 
$con = new mysqli(DB_HOST, DB_USER, DB_PASSWORD); 

//Checks for connection 
if ($con->connect_error) { 
     die("Connection failed: " . $con->connect_error); 
} 

//If there are no connection, error 
if (!$con) { 
     die('Could not connect' . mysqli_error()); 
} 

//Select the 'data' database 
$con->select_db(DB_NAME); 

//Checks if database 'data' has been selected 
if (mysqli_select_db($con, DB_NAME)) { 
     echo "Database exists <br>"; 
} else { 
     echo "Database does not exist"; 
    } 

    if($con){ 

     echo "connection succss"; 
    } 

?> 

Option 2

<?php 

    $servername="localhost"; 
    $username ="root"; 
    $password=""; 
    $dbname="test"; 

$conn = new mysqli($servername, $username, $password, $dbname); 


if ($conn->connect_error) { 
    die("Connection failed: " . $conn->connect_error); 
}else{ 

    echo "connected"; 
} 
?> 

sind meine Codes sind, und wird auch bei Ihnen funktioniert gut, könnte ein Problem sein, mit Ihren Benutzername/Passwort

+0

Nein, der zweite funktioniert nicht! –

+0

Verwenden Sie den Code, den ich dann habe, sagen Sie mir den Fehler druckt –

+0

Verbindung fehlgeschlagen: Zugriff verweigert für Benutzer 'bogat584_tadej' @ 'localhost' (mit Passwort: JA) –