2016-04-21 12 views
0

was scheint das Problem zu sein, weil meine Anmeldeinformationen korrekt sind und es verbunden, wenn ich mysqli oop verwenden, aber fehlgeschlagen, wenn ich pdo verwenden. Ich benutze 000webhost als meine selbst-Studie FTP-Site. Ich suche weiter nach Antworten, aber ich kann es nicht alleine lösen.Probleme bei der Verbindung zu PDO aber mysqli funktioniert gut

Fehler in gU:

connect error: SQLSTATE[28000] [1045] Access denied for user 'a1882281_user'@'localhost' (using password: YES)

warum ist localhost dort, wenn mein Gastgeber mysql9.000webhost.com ist?

soll es nicht 'a1882281_user'@'mysql9.000webhost.com' anzeigen?

// mysqli oop, working 
<?php 

$host = "mysql9.000webhost.com"; 
$username = "a1882281_user"; 
$password = "********"; //my password is all numbers 
$db = "a1882281_db"; 

$conn = new mysqli($host, $username, $password, $db); 

if(!$conn){ 
echo "error connecting: " . $conn->error; 
} 

$sql = "SELECT firstname FROM Friends"; 
$result = $conn->query($sql); 

while($row = $result->fetch_assoc()){ 
echo $row['firstname']; 
} 

$result->free(); 
$conn->close(); 

?> 



// pdo, cannot connect :(
<?php 

$host = "mysql9.000webhost.com"; 
$username = "a1882281_user"; 
$password = "********"; //my password is all numbers 
$db = "a1882281_db"; 

try{ 
$conn = new pdo("mysql:host = $host; dbname = $db", $username, $password); 
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); 

}catch(PDOException $ex){ 
echo "connect error: " . $ex->getMessage(); 
} 

?> 
+0

'$ dbh = new PDO ("mysql: host = $ host; dbname = $ db", $ username, $ password); 'lösche Leerzeichen dazwischen und überprüfe einmal –

+0

omg wie in der Welt, wenn ich Leerzeichen lösche, funktionierte es? Es ist Wochen her, dass ich diese Verbindungsprobleme behebe. Wie kommt es, dass der Raum das Problem ist? –

Antwort

1

Ihr Fehler hatte mit den Räumen zu tun, die innen in der Zeichenfolge vorhanden:

$conn = new PDO("/*...string inside here...*/", $username, $password); 

Der folgende vollständige Code sollte funktionieren:

<?php 
$host = "mysql9.000webhost.com"; 
$username = "a1882281_user"; 
$password = "********"; //my password is all numbers 
$db = "a1882281_db"; 

try { 
    $conn = new PDO("mysql:host=$host;dbname=$db", $username, $password); 
    // set the PDO error mode to exception 
    $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); 
    echo "Connected successfully"; 
    } 
catch(PDOException $e) 
    { 
    echo "Connection failed: " . $e->getMessage(); 
    } 
?> 
+0

Bitte haben Sie es nicht eilig, nur den Code einzugeben. Es gibt einen bestimmten Grund, warum es versagt. –

+0

Oh, und das ist nicht mein Downvote BTW. –

+1

Nur ein Code-Dump ist keine Antwort. Downvote ist total meins, übrigens – PeeHaa

Verwandte Themen