ODBC: toevoegen van een record

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Ward

Ward

14/06/2006 15:59:00
Quote Anchor link
Hallo,

Ik heb volgende script geschreven:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
<?
session_start();

if ((!empty($usrname)) && (!empty($passwd)) && (!empty($usrmail)))
{

  $dbConn = odbc_connect("myODBCtest","","");
  $query = "INSERT INTO users VALUES ('$usrname', '$passwd', '$usrmail')";
  $exec   = odbc_exec($dbConn,$query,1);  
}
else
{
  echo "<b>An empty Field found!!!";
}

?>


Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?
if (isset($dbConn)) {odbc_close($dbConn);}
?>


Bij het lezen van m'n database heb ik geen problemen.
Maar bij het uitvoeren van bovenstaande script (op een record toe te voegen aan de tabel 'users' krijg ik telkens volgende foutmelding:

Warning: odbc_exec() [function.odbc-exec]: SQL error: [Microsoft][ODBC Microsoft Access Driver] Operation must use an updateable query., SQL state S1000 in SQLExecDirect

Kan iemand mij verder helpen? Hoe kan ik een record toevoegen aan een MSAccess database via de ODBC api?
 
PHP hulp

PHP hulp

17/11/2024 05:42:30
 
- SanThe -

- SanThe -

14/06/2006 16:03:00
Quote Anchor link
De tabel 'users' bestaat slecht uit drie velden (rows)?
 
Ward

Ward

14/06/2006 16:06:00
Quote Anchor link
Ja, drie tekstvelden van elk 50 tekens lang.

Ik gebruik IIS als webserver.
 
- SanThe -

- SanThe -

14/06/2006 16:08:00
Quote Anchor link
En zit er geen id in die tabel?
 
Ward

Ward

14/06/2006 16:09:00
Quote Anchor link
Nee, er werd geen sleutel aangemaakt. Moet ik er eentje aanmaken voor het identificatieveld usernaam?
 
- SanThe -

- SanThe -

14/06/2006 16:13:00
Quote Anchor link
Lijkt mij wel handig voor het verdere gebruik. Verder zou ik ook de veldnamen in de query stoppen.

$query = "INSERT INTO users (veldnaam, veldnaam, veldnaam) VALUES ('$usrname', '$passwd', '$usrmail')";

Edit: Typo
Gewijzigd op 01/01/1970 01:00:00 door - SanThe -
 
Ward

Ward

14/06/2006 16:24:00
Quote Anchor link
Nog steeds hetzelfde resultaat, ook door gebruik te maken van de veldnamen.
Bestaat er een andere functie om een record toe te voegen met odbc?
Heeft het te maken met access-rights? (Aangezien een select-statement geen enkel probleem geeft)

Wat bedoel je met "Edit: Typo" ??
 
- SanThe -

- SanThe -

14/06/2006 16:32:00
Quote Anchor link
Ik ben verder niet bekend met odbc maar google is hierin je beste vriend. Typo=Typfout.
 
Arend a

Arend a

14/06/2006 16:41:00
Quote Anchor link
Ik heb hier nooit echt problemen mee gehad, maar misschien is het niet de verstandigste optie om ms access als database server te gebruiken, zo is hij niet ontworpen en ik kan me inbeelden dat er wat haken en ogen aan zitten.

Laatste keer datik iets dergelijks probeerde kwam het er op neer dat ik een mysql versie voor de webserver gebruikte, en access een aparte versie draaide.
 
Wout van der Burg

Wout van der Burg

14/06/2006 16:43:00
Quote Anchor link
wat gebruik je met ODBC? Access?
dan heb ik wel een verbindingsvoorbeeldje voor je...
alleen kan ik die morgen pas copy-pasten :)
dus als je wil..

edit:

op mijn stage is de webserver oververhit geraakt op zolder LOL =D...
Gewijzigd op 01/01/1970 01:00:00 door Wout van der Burg
 
Ward

Ward

14/06/2006 20:06:00
Quote Anchor link
Aan Wout:
Ik gebruik inderdaad een Access (mdb) database. Dus als je een voorbeeld hebt van hoe je hieraan via phpscript een record kan aan toevoegen, wil ik dat graag ontvangen.
 

14/06/2006 21:09:00
Quote Anchor link
Probeer deze
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
$query = "INSERT INTO `users` (veldnaam, veldnaam, veldnaam) VALUES ('$usrname', '$passwd', '$usrmail');";
$exec   = odbc_exec($dbConn,$query);
 
Ward

Ward

15/06/2006 07:34:00
Quote Anchor link
Aan Webmakerij:
Bij het uitvoeren van jou code krijg ik volgende foutmelding:

SQL error: [Microsoft][ODBC Microsoft Access Driver] Syntax error in query. Incomplete query clause., SQL state S1000 in SQLExecDirect
 
Wout van der Burg

Wout van der Burg

15/06/2006 08:19:00
Quote Anchor link
De webserver is naar de klote :).. ik verwacht niet dat hij vandaag alweer online gaat, maar als hij weer online gaat post ik het hier..!

edit:
Wel weet ik dat er met een ADO-connectie verbinding is gemaakt.. wellicht dat je daar naar kan zoeken
Gewijzigd op 01/01/1970 01:00:00 door Wout van der Burg
 
Wout van der Burg

Wout van der Burg

15/06/2006 10:34:00
Quote Anchor link
ik heb em hier voor je;

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<?php
// Laat alle errors zien
error_reporting(E_ALL);

// Definities benodigt voor ADO-connectie
define('adCmdStoredProc',  4);
define('adOpenStatic',     3);
define('adUseClient',      3);
define('adLockOptimistic', 3);
define('adLockreadOnly',   1);
define('adOpenForwardOnly',0);

// Database initialiseren
$conn = new COM('ADODB.Connection');
$db = 'C:/path to .mdb...';
$conn->CursorType = adOpenForwardOnly;
$conn->CursorLocation = 3;
$conn->LockType = 1;
$conn->Open("DRIVER={Microsoft Access Driver (*.mdb)};Persist Security info=false; DBQ=$db");
?>

en zo roep je waardes op;
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
<?php
while (!$rs->EOF)
  {

    ?>

    <tr>
        <td><?= $rs->Fields['veld1']->Value; ?></td>
        <td><?= $rs->Fields['veld2']->Value; ?></td>
        <td><?= $rs->Fields['veld3']->Value; ?></td>
           <td><?= $rs->Fields['veld4']->Value; ?></td>
       </tr>
      <?php
    $rs
->MoveNext();
  }

?>
 

15/06/2006 11:19:00
Quote Anchor link
@Wout
Het probleem zit hem in de query. Niet in de verbinding.

Doe eens een echo van $query.
Geef de tabel is een andere naam.
 
Ward

Ward

16/06/2006 09:04:00
Quote Anchor link
Ik denk dat ik het eens over een heel andere boeg ga gooien. Momenteel gebruik in IIS met PHP en MSAccess.
Ik ga de installatie handleiding van Arjan Kapteijn volgen om een server te maken met Apache2, PHP en MySql.
Hopelijk heb ik daarmee meer succes.
 
Wout van der Burg

Wout van der Burg

16/06/2006 09:16:00
Quote Anchor link
ik denk dat je beter op een Windows machine bij IIS kan blijven als het toch werkt?

ik draai ook de combi IIS, PHP en MySQL en het werkt super..!

Nadeel van Access is dat je limiet hebt met update-query's
Vandaar dat ik ben overgestapt, ik draaide vroeger nl. ook Access

edit:
Wel kan je de tut van MySQL en PHPMyAdmin van Arjan goed gebruiken daarvoor
Gewijzigd op 01/01/1970 01:00:00 door Wout van der Burg
 
Ward

Ward

16/06/2006 09:23:00
Quote Anchor link
Awel, gisteren heb ik de combinatie IIS, PHP en MySQL geprobeerd en krijg een foutmelding:

Warning: mysql_connect() [function.mysql-connect]: Access denied for user 'ODBC'@'localhost' (using password: NO)

Daarom trachte ik deze morgen de combinatie Apache2, PHP en MySQL uit te proberen, maar ik het identiek dezelfde foutmelding. (ik heb hiervoor een nieuwe topic gemaakt)

Ik heb ook nog niet zoveel ervaring met al die dingen...
 
Wout van der Burg

Wout van der Burg

16/06/2006 09:24:00
Quote Anchor link
aja je maakt verkeerd verbinding
post je script eens
 
Wout van der Burg

Wout van der Burg

16/06/2006 09:25:00
Quote Anchor link
Quote:
(ik heb hiervoor een nieuwe topic gemaakt)


Ok gaan we daar verder :)
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.