![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 230 Pomógł: 3 Dołączył: 8.01.2008 Ostrzeżenie: (10%) ![]() ![]() |
Witam!
Ostatnio przeszedłem z AdoDB na PDO. Napisałem (z pomocą tutejszych forumowiczów ![]() Kod <?php class Database{ protected $db; public function __construct(){ $this->db=new Pdo('mysql:host=localhost;dbname=siatka','root','jo'); $this->db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); } public function sql($query,$return='exec',$binds=null){ $sql=$this->db->prepare($query); if($binds!=null){ if(is_array($binds)){ foreach($binds as $n => $bind) $sql->bindValue(($n+1), $bind); } else $sql->bindValue(1, $binds); } if($sql->execute()){ # włączenie tablic jedynie asocjacyjnych # if($return!='exec') $sql->setFetchMode(PDO::FETCH_ASSOC); switch($return){ case 'all': return $sql->fetchAll(); break; case 'one': return $sql->fetchColumn(); break; case 'row': return $sql->fetch(); break; case 'id': return $this->db->lastInsertId(); break; } } else return false; } } $db=new Database();?> No i teraz, jeżeli np. z tabeli users chcę pobrać wiersz, gdzie login = $_POST['login'], piszę takie coś: Kod <?php $db->sql("SELECT * FROM users WHERE login=?","row",$_POST['login']);?> . Dla rodzaju returnowania exec - nic nie jest zwracane. Służy to tylko do wykonywania działań na bazie: insert, update, delete.Zamierzałem jakoś zoptymalizować tą klase - tj. rozbić jakoś rodzaj returnowania, zrobić osobne funkcje na returnowanie wiersza, wszystkiego, rekordu... Wtedy aby pobrać wiesz, napisalibyśmy np. $db->getRow("SELECT * FROM users WHERE id=1"). Proszę o jakieś pomysły jak tą klasę nieco zoptymalizować ![]() Może macie jakieś swoje, z których korzystacie? Albo jakieś gotowe klasy, które można pobrać z neta? Ten post edytował nospor 17.11.2008, 13:23:37 -------------------- http://estender.net - profesjonalne strony i aplikacje internetowe (Ruby on Rails, Kohana PHP)
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 19.08.2025 - 17:50 |