Błąd łączenia z bazą danych za pomocą PDO

0

Witam
Mam taki kod

<?php
try{
$pdo = new PDO('mysql:host=localhost; dbname=sql','damian', 'pasword123');
}
catch(PDOException $e)
{
echo 'Nie mozna polaczyc sie z baza';

exit();
}
?>

Wszystkie dane dostepowe sa poprawne a mimo to wyswietla sie Nie mozna polaczyc sie z baza'.
Czy ktos wie jak to naprawić ? Aby bylo normalne polaczenie

0

Jaki konkretnie komunikat błędu się wyświetla?
Plus usuń spację między ; a dbname.

0

Nie mozna polaczyc sie z baza takie cos sie wyswietla
Probuje sie polaczyc w inny sposob

<?php

function connection() {
    // serwer
    $mysql_server = "localhost";
    // admin
    $mysql_admin = "damian";
    // hasło
    $mysql_pass = "meleme13";
    // nazwa baza
    $mysql_db = "sql";
    // nawiązujemy połączenie z serwerem MySQL
    @mysql_connect($mysql_server, $mysql_admin, $mysql_pass)
    or die('Brak połączenia z serwerem MySQL.');
    // łączymy się z bazą danych
    @mysql_select_db($mysql_db)
    or die('Błąd wyboru bazy danych.');
}
$wynik = mysql_query("SELECT * FROM joke")
or die('Błąd zapytania'); 

while($row = mysqli_fetch_array($wynik))
echo  $row[joketext];
?>

I wyswuetka sie "Bląd zapytania"

2

Zapomnij w ogóle o tym, że istnieją jakieś funkcje mysql_ - wszystkie są zdeprecjonowane i usunięte od PHP 7 w górę.

Nie mozna polaczyc sie z baza takie cos sie wyswietla

Nie, takie coś Ty wyświetlasz - ja pytam, co zawiera wyjątek.

0

Dałeś import biblioteki PDO?
use PDO, albo przy samym połączeniu \PDO.

0
  1. Pokaż nam co zawiera wyjątek, tak jak sugerował @Patryk27 ($e->getMessage()).
  2. Nie rób nigdy exit() (lepiej rzucić wyjątek który gdzieś może zostać obsłużony).
  3. Być może pasword123 to nie odpowiednie hasło :) Lepszym pewnie byloby password123.
0

Już pokzauje

'PDOException' with message 'SQLSTATE[HY000] [1049] Unknown database 'sql'' in /opt/lampp/htdocs/jokes.php:3 Stack trace: #0 /opt/lampp/htdocs/jokes.php(3): PDO->__construct('mysql:host=loca...', 'dami', 'password') #1 {main}

Czyli nie znalazł bazy danych mimo ,że wszystko jest okej
Edit. Juz wszystko jest okej. Zalozylem nowa baze i dziala

0

Już parę lat nie pisałem w php-ie ale z tego co pamiętam to małpą maskujesz błędy, wywal ją sprzed mysql_connect (passe, już wtedy zalecano mysqli), włącz error reporting na all (tutaj mogło coś się zmienić), ale jak chcesz szybko sprawdzić czy baza w ogóle chce gadać,a nie chce Ci się rozkminiać procesów, to ściągnij sobie np. MySQL Workbencha i zobacz czy w ogóle możesz się podpiąć dla tej konfiguracji.

1 użytkowników online, w tym zalogowanych: 0, gości: 1