Cześć,
próbuję wykonać zapytanie do bazy danych przy użyciu PDO i OOP w PHP. Nie korzystam na razie z żadnego wzorca tylko próbuje zrozumieć programowanie obiektowe. Do tej pory pisałem strukturalnie.
Z bazą danych łączę się elegancko. Gorzej już z wykonywaniem zapytań. Może pokażę całość kodu:
<?php
//--raportowanie błędów
error_reporting(E_ALL);
ini_set('display_errors', 1);
//--połączenie z bazą danych MySQL przy użyciu PDO
//***********************************************
class _constructor{
public function polacz(){
try{
$db = new PDO('mysql:host=localhost;dbname=test', 'root', '',array(PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8"));
echo 'Połączenie nawiązane!';
}catch(PDOException $e){
echo 'Połączenie nie mogło zostać utworzone.';
}
}
}
//***********************************************
//--wywołanie klas połączenia z bazą danych
$connect = new _constructor;
$connect->polacz();
//***********************************************
//--pierwsze zapytanie testowe
class zapytanie{
public function pytaj(){
$query = $db->exec('INSERT INTO `test` SET `cos`=342');
}
}
$connect2 = new zapytanie;
$connect2->pytaj();
?>
Zapytanie najprostsze z możliwych i niebezpieczne. Chcę w ogóle coś w bazie zapisać, bez filtracji danych na razie.
To wywołuje takie takie informacje:
Połączenie nawiązane!
Notice: Undefined variable: db in C:\xampp\htdocs\ConsoleBlog\index.php on line 30Fatal error: Call to a member function exec() on null in C:\xampp\htdocs\ConsoleBlog\index.php on line 30
Co ja robię źle? Normalnie pisząc strukturalnie takie zapytanie działa bez problemów. To i każde inne. Może mi ktoś pomóc?