Search code examples
phpfilemaker

Getting a single FileMaker record ID in PHP


I'm trying to write to an existing record in FileMaker, using PHP.

I have tried the following to find and edit the record, but it simply doesn't write the new data:

$fm_ = new FileMaker(FM_FILE, FM_HOST, FM_USER, FM_PASS);

$request = $fm->newFindCommand('INFO');
$request->addFindCriterion('ID', '==' . $_SESSION['on']);
result = $request->execute();

$records = result->getRecords();

foreach($records as $record) {
    $record->setField('Confirm', $_SESSION['confirm']);
    $result = $record->commit();
}

Any idea why this isn't writing?


Solution

  • You need to make a newEditCommand and execute that. This would probably work:

    $fm_ = new FileMaker(FM_FILE, FM_HOST, FM_USER, FM_PASS);
    
    $request = $fm->newFindCommand('INFO');
    $request->addFindCriterion('ID', '==' . $_SESSION['on']);
    result = $request->execute();
    
    $records = result->getRecords();
    
    foreach($records as $record) {
    
        $editRequest =& $fm->newEditCommand('INFO', $record->getRecordId() );
        $editRequest->setField('Confirm',$_SESSION['confirm']);
        $result = $editRequest->execute();
        if (FileMaker::isError($result)) {
            echo "<p>Error: " . $result->getMessage() . "<p>";
        }
    }