[PHP/ADODB/Access] DB-Types matchen *

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
#1

Ik gebruik PHP voor een kleine webapplicatie.
Om verschillende databases 'snel' te kunnen gebruiken en implementeren gebruik ik de ADODB library. Werkt op zich best goed. Op dit moment maak ik connectie naar een MS Access database. Het is de bedoeling dat in de toekomst dat er een uitbreiding komt naar een RDBMS (dat is voor dit probleem niet relevant).

Ik wil op een zo'n optimaal mogelijke en generieke manier snel een aantal records in een tabel toevoegen. Hiermee kom ik dus automatisch uit op dynamische SQL statements. So far so good. Ik weet dat MS Access dit niet direct ondersteund en dat dit door ADODB geemuleerd wordt. Nu is mijn vraag hoe ik een datumveld in zo'n query statement moet toevoegen zodanig dat dit geaccepteerd wordt. Wellicht is het gewoon kwestie van goed typecasten? Maar ja, ik weet alleen niet waar naar toe...

Onderstaande code levert een "type mismatch" op (ik weet de exacte melding zo ff niet). Op zich logisch, omdat de DBDate functie een string oplevert,bijvoorbeeld #01/01/2003# en FooDatumVeld1 een datumveldwaarde verwacht. Maar hoe maak ik dit op een goede manier kenbaar aan ADODB/Access?


PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
$sqlstring = ' INSERT INTO TableFoo'
           . ' (FooVeld1,FooVeld2,FooVeld3,FooDatumVeld1)'
           . ' VALUES (NULL,?,?,?)';
$query = $dbconnection_sbdmis->Prepare($sqlstring);
 
foreach($myarray as $key=>$value)
{ 
  if ($dbconnection->Execute($query,
            array($key,
                  intval($myarray[$key]),
                  $dbconnection->DBDate(mktime(0,0,0,$maand,$dag,$jaar))
                 ) === false)
      { echo "\nfout bij het toevoegen: " . $dbconnection->ErrorMsg();
      }
    }
  }
}



#2
PHP vraagje:
code:
1
2
3
=    --> waarde toekenning
==   --> vergelijking
===  --> maar wat is dit?

[ Voor 6% gewijzigd door Verwijderd op 27-08-2003 23:46 ]


Acties:
  • 0 Henk 'm!

  • whoami
  • Registratie: December 2000
  • Laatst online: 14:51
Maak gewoon gebruik van parameters in je queries, of , maak direct gebruik van een DBMS dat stored procedures ondersteunt, en maak dan gebruik vn stored procedures.

https://fgheysels.github.io/


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Zoals je ziet gebruik ik al parameters in de query en vooralsnog ondersteund MS Access :'( geen stored procedures. Bovendien kan en wil ik niets in de database definitie aanpassen en dus ook geen ingebouwde SQL-query definities aanmaken a la stored procedure.