-2

有什么方法可以将 Sugarcrm 数据库的特定表的数据保存到 doc 文件中?

我有一个带有用户名、一些注释和日期的自定义模块。我想将其写入数据库和文件中。

它不仅仅是一个 php 文件。我想使用逻辑钩子并编写代码。我想使用逻辑挂钩来访问数据库,然后将数据写入文件。

提前致谢

4

2 回答 2

1

保存为 DOC 文件可能不是最好的主意,因为它主要用于格式化信息。标准 .txt 文件通常是您用于此类过程的文件。

话虽如此,糖中没有任何内置方法可以让你做到这一点。您需要将功能构建到模块中。

你到底想完成什么?有一个非常强大的审计工具集,可以很好地查看对模块对象的修订。如果您只想监视对表的更改,您可以在 SQL 中为该表/数据库设置日志记录。

+++好的,如果您只是想在保存后写入文件,请按照以下说明操作:http : //cheleguanaco.blogspot.com/2009/06/simple-sugarcrm-logic-hook-example.html让逻辑钩子工作的快速方法。您将要创建一个 php 文件,该文件仅使用通过 bean 类传递给它的数据,并直接从 bean 中的数据写入文件,或使用 bean->id 参数执行 SQL 查询和从该数据写入文件。

另外,这是一个将立即生成然后在事务结束时销毁的 DOC 文件吗?或者它更像是一个持久的日志文件?

++++这很简单,那么在您现在拥有查询的地方,将其替换为:

$file = fopen($pathAndNameOfFile, 'a+') or die('Could not open file.');
$query = "SELECT * FROM data_base.table";
$result = $bean->db->query($query,true);
$dbRowData = $bean->db->mysql_fetch_assoc($result);
$printedArray = print_r($dbRowData);     
fwrite($file, $printedArray) or die('Could not write to file.');
fclose($file);

*快速说明,您可能需要设置权限才能读取/写入文件,但这些是特定于机器类型的,因此如果您遇到错误,请搜索为您的特定服务器设置权限类型。

**此外,'SELECT * FROM database.table' 将返回整个表中的所有行。这将生成一个非常大的文件,并且随着表的增长成为性能障碍。您应该使用 bean 类来更新最后保存的元组:

$file = fopen($pathAndNameOfFile, 'a+') or die('Could not open file.');
$query = "SELECT * FROM data_base.table WHERE id = '".$focus->id."';";
$result = $bean->db->query($query,true);
$dbRowData = $bean->db->mysql_fetch_assoc($result);
$printedArray = print_r($dbRowData);     
fwrite($file, $printedArray) or die('Could not write to file.');
fclose($file);
于 2012-08-06T16:01:58.930 回答
0

您可以使用 mysqldump 将 mysql 数据库导出/转储到 SQL 文件中

mysqldump -u userName -p databaseName tableName > fileName.sql
于 2012-08-06T15:24:45.530 回答