[PHP OOP] - Jak pobierać dane z MySQL?


(jacko1998) #1

Witam, próbowałem samemu pobrać dane z MySQL, ale w ogóle nie wychodziło. Poszukałem coś w internecie i znalazłem coś takiego klik. Mój kod:

<?php
class Users {
    function __construct() { /* Połączenie z bazą */
        $this->db = new db_connect();
        $this->db = $this->db->connect();  
    } /* Koniec połączenia */
    function getProperties() {
        $q = $this->db->prepare("SELECT * FROM users ORDER BY id DESC");
        $q->bindParam(1, $username);
        $q->bindParam(2, $password);
        $q->setFetchMode(PDO::FETCH_ASSOC);
        return $q->fetchAll(); 
    }
}
?>
<?php 
    $obj = new Users();
    $gettedUsers = $obj->getProperties();
    print_r($result);                    
    foreach($result as $users) {
?>
        <tr>
            <td><b><?php echo $users['id']; ?></b></td><td><?php echo $users['username']; ?></td><td><?php echo $users['password']; ?></td><td><?php echo $users['email']; ?></td><td><input type="submit" class="btn btn-default btn-sm" value="Edit"/> <input type="submit" class="btn btn-danger btn-sm" value="Delete"/></td>
        </tr>
<?php } ?>

No i nic mi nie wypisuje. A z tego print_r($result); tylko wypisuje Array()

Pozdrawiam

 

// Rozwiązane, to:

$q = $this->db->prepare("SELECT * FROM users ORDER BY id DESC");

zamieniłem na to:

$q = $this->db->query("SELECT * FROM users ORDER BY id DESC");

i działa.


(Djluki) #2
$q = $this->db->prepare("SELECT * FROM users ORDER BY id DESC");

Jeśli używasz $ob->prepare() to później musisz “wykonać” $ob->execute() to co “przygotowałeś” - nazwy metod same narzucają rozwiązanie :slight_smile:

 

Przykład:

$ob= $dbh->prepare(‘SELECT t.name FROM mytable t  WHERE t.id = :idN’);

$ob->bindParam(’:idN’, $id, PDO::PARAM_INT);

$ob->execute();

 

Poczytaj sobie tutoriale dotyczące PDO.


(jacko1998) #3

Już to wiem, ale nie korzystam już z prepare tylko od razu query