Hallo,

Ik heb volgende script geschreven:

<?
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!!!";
}
?>

<?
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?
Probeer deze

$query = "INSERT INTO `users` (veldnaam, veldnaam, veldnaam) VALUES ('$usrname', '$passwd', '$usrmail');";
$exec   = odbc_exec($dbConn,$query); 
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
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
ik heb em hier voor je;

<?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;

<?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();
  }
?>
@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.
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.
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
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...

aja je maakt verkeerd verbinding
post je script eens
(ik heb hiervoor een nieuwe topic gemaakt)


Ok gaan we daar verder :)

Reageren