Probleem PHP ODBC

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Ik heb een website gebouwd waarbij ik gebruik maak van een ACCESS db, ODBC en PHP. Nu geeft het ding problemen.

De ODBC connectie werkt. Dat heb ik gecontroleerd met ODBCTEST.

Mijn login functie werkt ook(maakt ook gebruik van php, geen javascriptje).

Maar nu heb ik een probleem met afbeelden van info uit de database op de site.

Het lijkt wel of "ODBC_result" niet goed werkt.

Ik krijg de volgende error:

Warning: odbc_result(): supplied argument is not a valid ODBC result resource in c:\apache\apache\htdocs\db.php on line 131

Hoe kan dat? Heb ik iets niet goed staan in m'n php.ini?

Ik heb deze zelfde foutmelding al op meer sites zien staan maar wat is het precies?

Iemand een idee? }:O

Acties:
  • 0 Henk 'm!

  • kvdveer
  • Registratie: November 2000
  • Laatst online: 07-11-2023

kvdveer

Z.O.Z.

Waarschijnlijk is je query brak, maar vang je geen fouten af...

Localhost, sweet localhost


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Wat kan er nou zo brak aan zijn dan? is 1 simpele tabel die gewoon aangeroepen wordt doormiddel van een select * from ... ?

Acties:
  • 0 Henk 'm!

  • drm
  • Registratie: Februari 2001
  • Laatst online: 09-06 13:31

drm

f0pc0dert

post eens wat code :)

Music is the pleasure the human mind experiences from counting without being aware that it is counting
~ Gottfried Leibniz


Acties:
  • 0 Henk 'm!

Verwijderd

Verwijderd schreef op 26 November 2002 @ 15:36:
Wat kan er nou zo brak aan zijn dan? is 1 simpele tabel die gewoon aangeroepen wordt doormiddel van een select * from ... ?
tabel/kolom bestaat niet? Heb je ook op hoofdletters gelet? Post je query eens...

[ Voor 0% gewijzigd door Verwijderd op 26-11-2002 15:44 . Reden: nouhou! Drm is gewoon ALTIJD sneller :( ]


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Komt tie : De website.

<head>
<LINK REL="stylesheet" TYPE="text/css" HREF="stylesheet.css">
</head>
<? if(!($adminlogincookie)) { Header("Location: index.html"); } else {
?>
<body>
<center><h1>Users</h1></center>

<p><a href="admintoevoegusers.html" target="hoofd">Toevoegen Users</a></p>

<table border="2">
<tr>
<th width=10% align="left">Naam</th>
<th width=15% align="left">Password</th>
<th width=20% align="left">Adres</th>
<th width=20% align="left">Woonplaats</th>
<th width=10% align="left">Functie</th>
<th width=15% align="left">Telefoonnr</th>
<th width=10% align="left">Adminpassword</th>
</tr>

<? Include("db.php");
$db=new db;
$db->init("odbc");
$db->open("Raben","localhost","","");
$query="select *
FROM Login";

$db->query($query);

While($db->getrow()) {

$Userid =$db->field(1);
$username =$db->field(2);
$password =$db->field(3);
$adres =$db->field(4);
$woonplaats =$db->field(5);
$functie =$db->field(6);
$telefoon =$db->field(7);
$adminpass =$db->field(8);

?>

<tr>
<td><a href="admineditusers.html?username=<? echo $username; ?>"><? echo $username; ?></a></td>
<td><? echo $password; ?> </td>
<td><? echo $adres; ?> </td>
<td><? echo $woonplaats; ?> </td>
<td><? echo $functie; ?> </td>
<td><? echo $telefoon; ?> </td>
<td><? echo $adminpass; ?> </td>
</tr>
<? } ?>
</table>
</body>
<?
$db->close();
}
?>

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Ik maak trouwens gebruik van een database abstraction layer. maar daar zit het probleem niet in.

Acties:
  • 0 Henk 'm!

  • Gomez12
  • Registratie: Maart 2001
  • Laatst online: 17-10-2023
Sinds wanneer zijn dit 131 regels??? Fout zit in regel 131 maar welke is dat???

Acties:
  • 0 Henk 'm!

Verwijderd

Pagina 131 van zijn database abstraction layer, daar wordt de query immers uitgevoerd.

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Ik zal de abstraction alyer ff posten daar zit zo genaamd de fout in. maar dat kan niet. is standaard.

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
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
<?php //database abstraction layer voor PHP

  function debug($str) {
    echo "[$str]";
  }

class db {

  var $db_type;
  var $db_result;
  var $connect_id;
  var $cursor;
  var $row;
 

  function init($database_type) {
    if ($this->db_type && $this->db_type!="") {
      return 0;
    }
    $this->db_type=$database_type;
    return 1;
  }

  function open($database, $host, $user, $password) {
    switch($this->db_type) {
      case "adabas":
             $this->connect_id=ada_connect($database, $user, $password);
             break;
      case "msql":
             $this->connect_id=msql_pconnect($host);
             if ($this->connect_id) {
               $result=msql_select_db($database, $this->connect_id);
               if (!$result) {
                 msql_close($this->connect_id);
                 $this->connect_id=$result;
               }
             }
             break;
      case "mysql":
             if ($user=="") {
               $this->connect_id=mysql_pconnect($host);
             } else if ($password=="") { 
               $this->connect_id=mysql_pconnect($host, $user);
             } else { 
               $this->connect_id=mysql_pconnect($host, $user, $password); 
             }
             if ($this->connect_id) {
               $result=mysql_select_db($database);
               if (!$result) {
                 mysql_close($this->connect_id);
                 $this->connect_id=$result;
               }
             }
             break;
      case "odbc":
             $this->connect_id=odbc_pconnect($database, $user, $password);
             break;
      case "oracle":
             $this->connect_id=Ora_Logon($user, $password); 
             $this->cursor=Ora_Open($this->connect_id); 
             Ora_CommitOn($this->connect_id);
             break;
      case "postgres":
             $this->connect_id=pg_pconnect($host, "", "", "", $database);
             break;
    }
    return $this->connect_id;
  }

  function query($query) {
    switch($this->db_type) {
      case "adabas":
             $result=ada_exec($this->connect_id, $query);
             break;
      case "msql":
             $result=msql_query($query, $this->connect_id);
             break;
      case "mysql":
             $result=mysql_query($query, $this->connect_id);
             break;
      case "odbc":
             $result=odbc_exec($this->connect_id, $query);
             break;
      case "oracle":
             $result=Ora_Parse($this->cursor, $query); 
             if ($result) {
               $result=Ora_Exec($this->cursor);
             }
             break;
      case "postgres":
             $result=pg_exec($this->connect_id, $query);
             break;
    }
    $this->db_result=$result;
    return $result;
  }
  
  function getrow() {
    switch($this->db_type) {
      case "adabas":
             $this->row=ada_fetchrow($this->db_result);
             break;
      case "msql":
             $this->row=msql_fetch_array($this->db_result);
             break;
      case "mysql":
             $this->row=mysql_fetch_array($this->db_result);
             break;
      case "odbc":
             $this->row=odbc_fetch_row($this->db_result);
             break;
      case "oracle":
             $this->row=Ora_Fetch($this->cursor);
             break;
      case "postgres":
             $this->row++;
    }
    return $this->row;
  }
   
  function field($field) {
    switch($this->db_type) {
      case "adabas":
             $result=ada_result($this->row, $field);
             break;
      case "msql":
      case "mysql":
             $result=$this->row[$field];
             break;
      case "odbc":
             $result=odbc_result($this->row, $field);
             break;
      case "oracle":
             $result=Ora_GetColumn($this->cursor,$field);
             break;
      case "postgres":
             $result=pg_Result($this->connect_id, $this->row, $field);
             break;
    }
    return $result;
  }

  function firstrow() {
    switch($this->db_type) {
      case "adabas":
             $this->row=ada_fetchrow($this->db_result,1);
             break;
      case "msql":
             $result=msql_data_seek($this->db_result,0);
             if ($result) {
               $result=$this->getrow();
             }
             break;
      case "mysql":
             $result=mysql_data_seek($this->db_result,0);
             if ($result) {
               $result=$this->getrow();
             }
             break;
      case "odbc":
             $this->$row=odbc_fetch_row($this->db_result,1);
             break;
      case "oracle":
             $result=Ora_Exec($this->cursor);
             break;
      case "postgres":
             $this->$row=1;
             break;
    }
    return $this->row;
  }
     
  function close() {
    switch($this->$db_type) {
      case "adabas":
             $result=ada_close($this->connect_id);
             break;
      case "msql":
             $result=msql_close($this->connect_id);
             break;
      case "mysql":
             $result=mysql_close($this->connect_id);
             break;
      case "odbc":
             odbc_close();
             $result=1; // can't check.
             break;
      case "oracle":
             $result=Ora_Logoff($this->connect_id);
             break;
      case "postgres":
             $result=pg_Close();
             break;
    }
    return $result;
  }

}

?>

Acties:
  • 0 Henk 'm!

  • kvdveer
  • Registratie: November 2000
  • Laatst online: 07-11-2023

kvdveer

Z.O.Z.

die Database abstractionlayer is brak. Zeer brak zelfs. Er worden geen fouten afgevangen. Dat is leuk zolang hetwerkt, maar als het niet meer werkt zit je met de gebakken peren.

[ Voor 2% gewijzigd door kvdveer op 26-11-2002 15:56 . Reden: typo ]

Localhost, sweet localhost


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Ideeen ?

Acties:
  • 0 Henk 'm!

  • Gomez12
  • Registratie: Maart 2001
  • Laatst online: 17-10-2023
zonder db abstraction layer werken oftewel ga naar www.php.net en zoek naar odbc.

Acties:
  • 0 Henk 'm!

Verwijderd

Ba Baracus schreef op 26 November 2002 @ 15:45:[/b]
code:
1
2
3
4
    $query="select *
        FROM Login";
    
    $db->query($query);

[/quote]

Pakt ie die newline wel lekker? Misschien vindt access dat wel niet lekker.. en probeer Login eens zonder hoofdletter...

edit:

En schoppen na 11 minuten wordt meestal niet echt gewaardeerd....

[ Voor 16% gewijzigd door Verwijderd op 26-11-2002 16:15 ]


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Ik zal het proberen, heb trouwens ook al geprobeert zonder abstraction layer en kreeg dezelfde fout meldingen. kan het us niet aan liggen.

Acties:
  • 0 Henk 'm!

  • Gomez12
  • Registratie: Maart 2001
  • Laatst online: 17-10-2023
zonder abstraction layer krijg jij een fout in regel 131 van de abstraction layer??? Kijk eens goed of je het wel echt zonder de abstraction layer doet.

Acties:
  • 0 Henk 'm!

  • kvdveer
  • Registratie: November 2000
  • Laatst online: 07-11-2023

kvdveer

Z.O.Z.

Verwijderd schreef op 26 november 2002 @ 16:12:
Ik zal het proberen, heb trouwens ook al geprobeert zonder abstraction layer en kreeg dezelfde fout meldingen. kan het us niet aan liggen.
Je leest niet goed.
Ik zeg niet dat die database abstraction layer het probleem veroorzaakt. Ik zeg wel dat die database abstractionlayer je probleem verbergt. Kijk eens (zonder die db-abstraction-layer) naar http://nl.php.net/manual/nl/function.odbc-error.php

Een veel gebruikte methode is:

odbc_connect(...) or die(odbc_error());
...
odbc_prepare(...) or die(odbc_error());
odbc_execute(...) or die(odbc_error());
...
odbc_close(...);

Als je niet kijkt wat je fouten zijn, kunnen wij je ook niet helpen.

Localhost, sweet localhost


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Ik heb het zonder geprobeert en kreeg dus dezelfde error alleen met betrekking tot een andere file. Vond ik toch erg vreemd , ik zal Kvdveer z'n advies eens proberen, denk alleen dat dat morgen wordt. alvast bedankt.
Pagina: 1