Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: DB2 i PHP
Forum PHP.pl > Forum > Przedszkole
Gość_gość
Witajcie, może to pytanie wyda się Wam dość lamerskie, z góry sorry. Mam problem jak w php połączyć się z bazą danych DB2. Pierwszy raz w życiu widzę tą bazę i nie mam żadnego pomyślu. Pomocy! (do tej pory pracowałem na MySQL'u i może chociaż doradzicie jak przerobić łączenie się z MySQL'a na DB2)
Vertical
  1. <?php
  2. $connect = 'DRIVER={Sciezka_do_db2};SERVER=db2;DATABASE=[nazwa_bazy]';
  3. odbc_connect( $connect, &#092;"user\", \"haslo\" );
  4. ?>

Może zadziała...
mcstar
Co prawda to nie ja wymyśliłem, ale sam z tego połączenia korzystam i działa idealnie...

  1. <?php 
  2. require_once(&#092;"class.php\"); 
  3. $db = new DB2(); 
  4. print &#092;"connecting to DB2...\"; 
  5. if (!$db->connect(&#092;"konie\", \"Administrator\", \"2906mar\")) 
  6. { 
  7.  print &#092;"Error!n\"; 
  8.  exit(); 
  9. } 
  10. print &#092;"Connected!<br>n\"; 
  11.  
  12. print &#092;"Creating Database...\"; 
  13. $sql = &#092;"\"; 
  14. $sql .= &#092;"CREATE TABLE testtbl (id INTEGER NOT NULL GENERATED\"; 
  15. $sql .= &#092;" ALWAYS AS IDENTITY (START WITH 0, INCREMENT BY 1, NO\"; 
  16. $sql .= &#092;" CACHE), name VARCHAR (64) NOT NULL , created DATE NOT NULL)\"; 
  17. $db->query($sql); 
  18.  
  19. print &#092;"Created Table!<br>n\"; 
  20.  
  21. print &#092;"Disconnecting...\"; 
  22. $db->disconnect(); 
  23. print &#092;"Disconnected!<br>n\"; 
  24.  
  25. ?>


to umieść w jakimś pliku np.: index.php

a to klasa;)

  1. <?php 
  2.  
  3. class DB2 
  4. { 
  5.  var $handle; 
  6.  
  7.  // bool connect(string $dsn, string $user, stirng $pass) 
  8.  function connect($dsn, $user, $pass) 
  9.  { 
  10.  $this->handle = odbc_connect($dsn, $user, $pass); 
  11.  if (!$this->handle) 
  12.  return false; 
  13.  return true; 
  14.  } 
  15.  
  16.  // resourceid query(string $sql) 
  17.  function query($sql) 
  18.  { 
  19.  $rs = @odbc_exec($this->handle, $sql); 
  20.  if ($rs) 
  21.  { 
  22. return $rs; 
  23.  } 
  24.  else 
  25.  { 
  26. $sErr = &#092;"<b>Error:</b> \" . $this->getErrorMsgs() . \"<br>n\"; 
  27. $sErr .= &#092;"<b>SQL:</b> \" . $sql; 
  28. die($sErr); 
  29. } 
  30.  } 
  31.  
  32.  // string getErrorMsgs() 
  33. function getErrorMsgs() 
  34. { 
  35. return odbc_errormsg($this->handle); 
  36. } 
  37.  
  38. // void disconnect() 
  39.  function disconnect() 
  40.  { 
  41.  if ($this->handle) 
  42.  odbc_close($this->handle); 
  43.  } 
  44. } 
  45.  
  46. ?>


A teraz najważniejsza sprawa... jeśli masz Windowsa (na Linuksie jeszcze nie testowałem...) to trzeba w Narzędziach Administracyjnych -> Zródła Danych (ODBC) sprawdzić czy w zakładce Systemowe DNS mamy dodany wpis naszej bazy, jeśli nie to koniecznie należy go tam recznie dodać...


A przy okazji sam mam pytanie... czy z MaxDB można tak samo się połączyć?? czy jest jakaś prostsza i szybsza metoda questionmark.gif aarambo.gif
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.