将数据从PHP表单发布到File maker pro 12服务器上的File Maker数据库

好的,这就是挑战.我在Windows框上托管的Filemaker 12服务器上有一个File maker数据库.我还在Linux机器上托管了一个PHP表单.如何将数据从PHP表单获取到Filemaker数据库?这是我尝试过的.

<?php
define('fm_host', '131.181.###.###');
define('fm_file', 'name of the db');
define('fm_user', 'user');
define('fm_pass', 'password');
$layout_name = 'Request'; 
$respondent_data = array("stuff","stuff","stuff","stuff","stuff");
require_once ('FileMaker.php');
$fm = new FileMaker(fm_file, fm_host, fm_user, fm_pass);
if(FileMaker::isError($fm)){ 
die('Error - ' . $fm->getCode() . ' ' . $fm->getMessage());
}
$newAdd =& $fm->newAddCommand('Request', $respondent_data);
$result = $newAdd->execute();
?>

这样就完成了,没有错误,但是当我转到Filemaker pro并打开我使用Filemaker管理控制台从服务器下载的数据库副本时,没有新记录.我在与表单相同的目录中解压缩了Filemaker独立PHP API,并设法使用Filemaker.php函数.所以我对为什么他们至少没有抛出错误感到困惑.但是在项目的这个阶段,我不在乎我只是想通过任何方式获取数据库中的数据!任何骇客都会这么做,因为项目范围以数据库中的数据结尾.

旁注:我曾尝试使用ODBC访问DB,并考虑使用File Maker Pro进行手动导入,但是Linux服务器上安装的PHP在php.ini文件中缺少com类,并且我无权更改.

我也考虑过使用XML的同一件事,尽管我不适应它.但是,就像凌晨4点醉酒一样,我愿意尝试一下.

提前致谢!

解决方法:

您需要将字段名称映射到$respondent_data数组中的值.简单的key =>值编程风格.

$respondent_data = array("field1" => "stuff", "field2" => "stuff", "field3" => "stuff", "field4" => "stuff", "field5" => "stuff");

您也可以根据需要指定一个字段一个字段

$fm = new FileMaker(fm_file, fm_host, fm_user, fm_pass);
$cmd = $fm->newAddCommand($layout_name);
$cmd->setField("fieldname", "Value");
$cmd->setField("fieldname2", "Value2");
$cmd->setField("fieldname3", "Value3");
$result = $cmd->execute();

if(FileMaker::isError($result)){ 
    die('Error - ' . $fm->getCode() . ' ' . $fm->getMessage());
}  

在调用$fm-> execute()之前,无需调用FileMaker :: IsError方法.那就是当PHP使用cURL在FileMaker Server中查询WPE时.您将返回FoundSet-Object或Error-Object. IsError是查看WPE是否返回错误的一组记录的简单方法.

欲了解更多信息
http://www.filemaker.com/support/product/docs/12/fms/fms12_cwp_php_en.pdf

上一篇:c#-“未找到数据源名称且未指定默认驱动程序”用于创建访问连接


下一篇:如何确定哪些驱动程序可用于php中的odbc(在Linux系统上)?