Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]przekazywanie zmiennych pomiedzy metodami (OOP)
Forum PHP.pl > Forum > Przedszkole
michat34
od v5.0.3 varchar moze miec dlugosc tak jak text (65tys znakow), wczesniej mialo tylko 255. zamierzam przechowywac wiadomosci ktore moga miec do 500 znakow (a wiec nie jakies dlugie). i tutaj moje pytanei cos sie lepiej nada? varchar czy text skor ooba moga miec po tysiace znakow..?
b4rt3kk
Istnieją pewne fundamentalne różnice pomiędzy TEXT a VARCHAR. TEXT nie jest komórką tabeli, jest przechowywany jako obiekt, do którego dostęp zużywa dodatkową pamięć, nie można mu nadać domyślnej wartości innej niż NULL, zajmuje więcej pamięci od VARCHAR. Myślę, że użycie VARCHAR w Twoim przypadku będzie jak najbardziej na miejscu.
michat34
ok dzieki. mam jeszcze jedni pytnie zadam tu by nie robic nowego tematu:

nie znam sie za dobrze na oop ale probuje stworzyc klase ktora bedzie umiala sie laczyc z baza danych i wykonywac na niej rozne operacje.
ma na razie metode:
  1. public function connect ()
  2. {
  3. try
  4. {
  5. $pdo = new PDO('mysql:host=localhost;dbname=shoutbox', 'root', '');
  6. }
  7. catch(PDOException $e)
  8. {
  9. echo 'Nie można połączyć się z bazą danych: ' . $e->getMessage();
  10. }
  11. }
  12.  
  13. public function read ($id)
  14. {
  15. $pdo=$stmt->quert("SELECT * FROM tabela WHERE id='$id'");
  16. return $stmt->fetch();
  17. }


chcialbym aby uzywajac tej metody mozna bylo wywolac np inna metode zwiazana z baza danych jak:

$klasa = new Klasa;
$klasa->connect()->read(5);

cos w ten desen..
mysle ze nalezaloby tutaj zrobic takei cos ze jedna funkcja potrafi przekazywac innej jakies informacje (to ma jakas fachowa nazwe pewnie) i to bym tutaj chcial uzyskac. jak to zaimplementowac zeby read wiedziala czym jest pdo? w sensie jak takie lancuhowe wywołanie zrobic?
b4rt3kk
Metoda, nie powinna wyrzucać tekstu na ekran (w to miejsce daj false), no i musi zwracać uchwyt do bazy jeśli chcesz z niej później korzystać.

  1. public function connect ()
  2. {
  3. $pdo = new PDO('mysql:host=localhost;dbname=shoutbox', 'root', '');
  4. return $pdo;
  5. }
  6.  
  7. public function read ($id)
  8. {
  9. $stmt = $this->connect()->quert("SELECT * FROM tabela WHERE id='$id'");
  10. return $stmt->fetch();
  11. }
d3ut3r
To co chcesz zrobić to tzw chaining teoria jest prosta metoda zwraca zawsze $this;

Przykład:

  1. class Person{
  2.  
  3. private $name;
  4. private $surname;
  5.  
  6. public function setName($name){
  7. $this->name=$name;
  8. return $this;
  9. }
  10.  
  11. public function setSurname($surname){
  12. $this->surname=$surname;
  13. return $this;
  14. }
  15.  
  16. public function getFullName(){
  17. return $this->name.' '.$this->surname;
  18. }
  19.  
  20. }
  21.  
  22. $me=new Person();
  23.  
  24. echo $me->setName('Jan')->setSurname('Nowak')->getFullName();


To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.