FileMaker 11 PHP和ODBC换行/回车新行

5

我正在使用ODBC连接连接到FileMaker Pro 11服务器。我正在从eBay API导入一些信息。

当我从eBay收到地址时,它分为两个字段:address1和address2。在FileMaker数据库中,我们只有一个地址字段。我尝试使用PHP将两个地址分隔开,以换行或回车符号的形式,但似乎从未起作用。

我会尝试插入:

"$var1\n$var2"

而FileMaker会将 \n 作为普通文本读取。\r 也是如此。我还尝试使用以下方式设置字符串:

<<<EOF 

我尝试过多种方法都没有成功。我还尝试了使用我读到的适用于换行的饼图符号,但它并不能以这种方式工作。

因此,基本上..我该如何在使用php pdo和odbc时插入文件制造者能够理解的换行呢?


1
这是一个不常见的数据库,所以即使在Stackoverflow上也找不到很多专家。无论如何,你用了哪个代码?如果你使用了转义函数(甚至是错误的函数?),那么这可能就是它在数据库中的结果。否则,请尝试使用PDO绑定参数 $s = $pdo->prepare("INSERT INTO tbl (x) VALUES (?)"); $s->execute(array("var1 \n var2")); - mario
4个回答

2

我进行了一些测试,发现即使我做了类似于 $var1 . ord( 10 ) . $var2 的操作,它也无法正常工作。我再次确认,从FileMaker客户端中输入的字段中的换行符是ASCII字符10 (\n)。所以这就是我解决问题的方法。

我编辑了记录以插入 '12<br>34'。然后我在FileMaker中设置该字段的字段定义为自动输入计算。我的字段名为TestField,因此我的计算结果为Substitute( TestField; "<br>"; ¶ )。确保取消选中不替换现有值复选框。一旦我这样做了,使用'12<br>34'作为字符串进行PHP字段编辑,在1234之间放置了一个回车符。


那个可行。我不是很喜欢FileMaker,但我的工作需要使用它,所以我必须处理它。 - Ghassan Idriss
你知道吗,我又想到了另外一件事情。当我从PHP中在FileMaker中搜索电子邮件地址时,我必须转义@符号,因为它对于FileMaker搜索具有特殊意义。转义序列是反斜杠。也许两个反斜杠加回车符会起作用,即\\n。虽然我还没有尝试过,但这可能是正确的解决方案。 - Chuck
1
回到这个问题,使用普通的 \n 是可以的,我在我的代码中有一个错误,在持久化到数据库之前使用了单引号而不是双引号,这样就去掉了换行符。 - Ghassan Idriss

1
今天在使用Filemaker和Java JDBC时遇到了这个问题,以下是解决方案,希望对其他人有所帮助。
Character ch = new Character('\n');                    
String dataForFM = "Field Data Here" + ch.toString() + "More Field Data Here";

1
在谷歌上遇到了这个页面,因为有同样的问题。不想尝试使用自动输入 cal 选项,所以只用 PHP 就解决了它...
    $var1 . char( 13 ) . $var2  

当从 FileMaker 字段中取出含有回车符的值时,将其放入变量并放回 FileMaker 时需要小心。 例如:

将其提取到 PHP 变量中:

    $variable = nl2br($record->getField("field1"));

并将其放回到FileMaker中:

    $record->setField('field1',str_replace('<br />',chr(13),$variable));

敬礼


1

休息必须在它自己的双引号中,就像这样:

$var1 . "\n" . $var2

或者:

'var1' . "\n" . 'var2'

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接