Hoi GoTters,
ik ben bezig met de PEAR package en dan vooral MDB2.
Dat is de vervanger van de vroeger heel bekende DB.
Het verbinding maken met de database werkt. En dat al na 1 dag
Maar nu het volgende, ik wil mijn tables listen.
Ik heb een database class gemaakt die de class MDB2_Driver_Manager_Common extend.
Nou wil ik dus de functio nlist_tables uitvoeren om zo een 2 dimensionale array te krijgen met alle namen en velden vna mijn tables. op deze manier:
Maar het probleem is dat ik nu de error krijg: MDB2 Error: not found.
Om daar wat meer info over te krijgen had ik ook nog getuserInfo() aangeroepen en daaruit kwam dan: Could not find MDB2 instance.
Maar als ik $GLOBALS['_MDB2_databases'] doe, krijg ik wel mooi mijn MDB2 instance te zien.
Weet iemand waar het aan kan liggen?
ik ben bezig met de PEAR package en dan vooral MDB2.
Dat is de vervanger van de vroeger heel bekende DB.
Het verbinding maken met de database werkt. En dat al na 1 dag
Maar nu het volgende, ik wil mijn tables listen.
Ik heb een database class gemaakt die de class MDB2_Driver_Manager_Common extend.
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
| class database extends MDB2_Driver_Manager_Common { private $db; private $data_source_name; private $tables; function __construct() { $this->db = null; $this->data_source_name = null; $this->tables = array(); } function connect($dsn) { $this->data_source_name = MDB2::parseDSN($dsn); $this->db = &MDB2::connect($this->data_source_name); if(MDB2::isConnection($this->db)) { $this->tables = $this->list_tables(); return true; } else return false; } public function list_tables() { $this->tables = $this->listTables(); if(!MDB2::isError($this->tables)) { for($i = 0; $i < sizeof($this->tables); $i++) { $table = array($this->tables[$i], $this->listTableFields($this->tables[$i])); $this->tables[$i] = $table; } } else { echo $this->tables->getMessage().'<BR>'.$this->tables->getUserInfo(); $this->tables = array(); } } public function table_exists($table_name) { if(is_array($this->tables)) { if(in_array($table_name, $this->tables)) return true; else return false; } else return false; } public function field_exists($table, $field) { if($this->table_exists($table)) { if(in_array($field, $this->tables)) { return true; } else return false; } else return false; } } |
Nou wil ik dus de functio nlist_tables uitvoeren om zo een 2 dimensionale array te krijgen met alle namen en velden vna mijn tables. op deze manier:
code:
1
2
3
4
5
| array: [users][id][name][address] [test][id][tester][time][date] etc etc |
Maar het probleem is dat ik nu de error krijg: MDB2 Error: not found.
Om daar wat meer info over te krijgen had ik ook nog getuserInfo() aangeroepen en daaruit kwam dan: Could not find MDB2 instance.
Maar als ik $GLOBALS['_MDB2_databases'] doe, krijg ik wel mooi mijn MDB2 instance te zien.
Weet iemand waar het aan kan liggen?
A byte walks into a bar and orders a pint. Bartender asks him "What's wrong?" Byte says "Parity error." Bartender nods and says "Yeah, I thought you looked a bit off."