SugarCRM将数据库数据保存到文件中


SugarCRM save database data to file

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

我有一个带有用户名,一些注释和日期的自定义模块。我想把它写进数据库和文件中。

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

提前致谢

另存为 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);

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

mysqldump -u userName -p databaseName tableName > fileName.sql