Problem z wyłapaniem błędu PHP

2018-11-06 19:07
0

Witam szanownych forumowiczów, mam problem ze znalezieniem błędu, kilka godzin spędzonych nad szukaniem, głowa się zamknęła zamiast otworzyć.
Otóż mam standardowego connecta z bazą danych w php nic specjalnie odbiegającego od podręcznikowego wzoru, działające w innych moich projektach;

<?php
class Database
{

    public $pdo;

    public function __construct()
    {
        if (!isset($this -> pdo))
        {
            try
            {
                $this -> pdo = new PDO('mysql:Host=localhost;dbname=projekt', 'root', '');
                $this -> pdo -> query("SET NAMES utf8");
            }

            catch (PDOException $e)
            {
                die("Błąd połączenia z bazą danych" .$e->getMessage());
            }
        }

    }
}

?>

Dodatkowo klasę user

<?php

include_once 'Session.php';
include 'Database.php';

class User
{
    public $db;

    function __construct()
    {
        $this->db = new Database();       
    }

    public function rejestruj($dane)
    {
        $stmt = $this->db->pdo->prepare('INSERT INTO uzytkownicy (email, password) VALUES(:email, :password)');
        $stmt->execute (['email' => $dane['email'], 'password' => $dane['password'],]);
        if ($stmt) 
        {
            $msg = " Sukces ! ";
            return $msg;
        }
        else
        {
            $msg = " Błąd ! ";
            return $msg;
        }
    }

no i pliczek z formularzem

<?php
    include 'header.php';
    include 'classes/User.php';
?>

<?php
    $user = new User();
    if (isset($_POST['zarejestruj']))
    {
         $user->rejestruj($_POST);

    }
?>
<form action="" method="POST">
        <div class="form-group">
            <label for="email"> Adres Email </label>
            <input type="text" id="email" name="email" class="form-control">
        </div>

        <div class="form-group">
            <label for="password"> Hasło </label>
            <input type="password" id="password" name="password" class="form-control">
        </div>
                <div class="form-group">    
            <input type="submit" name="zarejestruj" id="submit" class="btn btn-default" value="Zarejestruj się" />  
        </div>
</form>

czyli standardowe dodawanie userka bez żadnej walidacji do bazy danych, w pliczku z formularzem odwołanie do metody z klasy user wszystko super trafia do tej metody wszystko działa do poziomu execute php nie krzyczy errorami nawet ponoć przechodzi ale do bazy danych nie trafia nic, pomimo podania właściwych danych itd. zwracam się do was użytkownicy może ktoś ma bystre oko i otwartą głowę, bo ja nie mogę znaleźć problemu, dzięki za wszelką pomoc :)

Ps. w executa wsadziłem też na próbę dane z palca zamiast ze zmiennej i też nie dotarło do bazy.

edytowany 2x, ostatnio: furious programming, 2018-11-06 19:11

Pozostało 580 znaków

2018-11-06 19:51
0

Obadaj jakąś funkcje typu http://php.net/manual/en/pdo.errorinfo.php lub jakimś get_last_error (akurat to z głowy pisze, ale myślę że poradzisz sobie)

Dodatkowo execute'a opakuj try/catch'em.
Używasz debuggera?

Pozostało 580 znaków

2018-11-06 20:00
0

http://php.net/manual/en/pdostatement.execute.php Example #2

Pozostało 580 znaków

Liczba odpowiedzi na stronę

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