有什么方法可以将sugarcrm数据库的特定表的数据保存到doc文件中?
我有一个自定义模块,包含用户名,一些注释和日期。我想把它写入数据库并写入文件。
它不仅仅是一个php文件。我想使用逻辑钩子并编写代码。我想使用逻辑钩子来访问数据库,然后将数据写入文件。
提前致谢
答案 0 :(得分:1)
保存为DOC文件可能不是最好的主意,因为它主要用于格式化信息。标准的.txt文件通常用于此类过程。
话虽如此,糖中没有任何方法可以让你这样做。您需要在模块中构建功能。
你究竟想要完成什么?有一个非常强大的审计工具集,它有助于查看模块对象的修订。如果您只想监视对表的更改,可以在SQL中为该表/数据库设置日志记录。
+++好的,如果您只想在保存后写入文件,请按照:http://cheleguanaco.blogspot.com/2009/06/simple-sugarcrm-logic-hook-example.html中的说明快速了解如何使逻辑挂钩工作。您将要创建一个简单地使用通过bean类传递给它的数据的php文件,并直接从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);
答案 1 :(得分:0)
您可以使用mysqldump
将mysql数据库导出/转储到SQL文件中mysqldump -u userName -p databaseName tableName > fileName.sql