Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [mysqli] Przekazanie wskaźnika wyniku.
starach
post
Post #1





Grupa: Zarejestrowani
Postów: 999
Pomógł: 30
Dołączył: 14.01.2007
Skąd: wiesz ?

Ostrzeżenie: (0%)
-----


Zdziwiłem się ale nie mogę przekazać identyfikatora wyniku,
zwracanego przez mysqli_query do następnej klasy.
Pomyślałem że w takim razie skoro nie mogę przekazać,
to wyślę treść zapytania do następnej klasy i tam je wykonam.
Ten pomysł też padł bo muszę przecież wykorzystać jakoś identyfikator połączenia który jest definiowany w klasie nadrzędnej. Pytanie jak przekazać resource id do klasy operującej na wyniku zapytania.

Co ciekawsze problem pojawił się kiedy chciałem skorzystać z mysqli_affected_rows() natomiast w pozostałych przypadkach jak pobieranie kolejnych wierszy z wyniku wszystko jest ok.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
starach
post
Post #2





Grupa: Zarejestrowani
Postów: 999
Pomógł: 30
Dołączył: 14.01.2007
Skąd: wiesz ?

Ostrzeżenie: (0%)
-----


Tak znam manual ( trochę (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif) )
Zapytanie:
UPDATE session SET sess_last_update=CURRENT_TIMESTAMP(), sess_value='' WHERE sess_id='2191cce17c1148485c3b1aeee690cb9a'boolean
Dobrze się wykonuje przez klienta baz danych a przez mysqli_query() zwraca true i nie mogę pobrać ilości rekordów na których ono zadziałało,
bo dostaje komunikat taki jak powyżej.
mysqli_affected_rows() expects parameter 1 to be mysqli, boolean given
Wywołuję tą metodę w klasie Session.
  1. <?php
  2. public function _write($session_id, $session_data)
  3. {
  4. $result = $this->db->query('SELECT COUNT(*) as count FROM '.DB_PREFIX.'session WHERE sess_id=''.$session_id.''');
  5. $row = $result->fetch();
  6. if($row['count'] > 0)
  7. {
  8. $result = $this->db->query('UPDATE '.DB_PREFIX.'session SET sess_last_update=CURRENT_TIMESTAMP(),
  9. sess_value=''.$session_data.'' WHERE sess_id=''.$session_id.''');
  10. if($result->affectedRows() > 0)
  11. {
  12. return true;
  13. } else {
  14. return false;
  15. }
  16. } else {
  17. $result = $this->db->query('INSERT INTO '.DB_PREFIX.'session 
  18. (sess_id, sess_start, sess_last_update, sess_value, user_id, user_ip) 
  19. VALUES(''.$session_id.'', CURRENT_TIMESTAMP(), CURRENT_TIMESTAMP(), ''.$session_data.'', 1, '127.0.0.1')');
  20. if($result->affectedRows() > 0)
  21. {
  22. return true;
  23. } else {
  24. return false;
  25. }
  26. }
  27. }
  28. ?>
  1. <?php
  2. public function _gc($maxlifetime)
  3. {
  4. $sess_live_time = strftime('%Y-%m-%d %H:%M', strtotime("-$maxlifetime seconds"));
  5. $result = $this->db->query('DELETE FROM '.DB_PREFIX.'session WHERE sess_last_update < ''.$sess_live_time.''');
  6. return $result->affectedRows();
  7. }
  8. ?>


Ten post edytował orglee 2.06.2007, 14:31:05
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 29.12.2025 - 23:00