这可能不是您想要的,但您当然可以使用分号连接 MS-SQL 语句。
INSERT INTO statistics_search_hits ( iln, artikelnummer, source, viewed, zeitstempel )
VALUES( <cfqueryparam value = "#results.sellerID#" cfsqltype="cf_sql_varchar" maxlength="13">
, <cfqueryparam value = "#results.style#" cfsqltype="cf_sql_varchar" maxlength="35">
, <cfqueryparam value = "#Session.skin#" cfsqltype="cf_sql_varchar" maxlength="13">
, "detail"
, now()
);
INSERT INTO statistics_search_hits ( iln, artikelnummer, source, viewed, zeitstempel )
VALUES( <cfqueryparam value = "#results.sellerID#" cfsqltype="cf_sql_varchar" maxlength="13">
, <cfqueryparam value = "#results.style#" cfsqltype="cf_sql_varchar" maxlength="35">
, <cfqueryparam value = "#Session.skin#" cfsqltype="cf_sql_varchar" maxlength="13">
, "detail"
, now()
)
INSERT INTO statistics_search_hits ( iln, artikelnummer, source, viewed, zeitstempel )
VALUES( <cfqueryparam value = "#results.sellerID#" cfsqltype="cf_sql_varchar" maxlength="13">
, <cfqueryparam value = "#results.style#" cfsqltype="cf_sql_varchar" maxlength="35">
, <cfqueryparam value = "#Session.skin#" cfsqltype="cf_sql_varchar" maxlength="13">
, "detail"
, now()
);
您也许可以将语句写入文件并让 MySQL 也按计划导入它们。因此,您可以将文件写入日志目录,然后让 CFSCHEDULE/CFEXECUTE 进程进入并按计划处理文件。
您还可以尝试使用方便的 INSERT INTO...SELECT 语句。如果您的搜索结果无论如何都来自数据库,您可以设计一个 SELECT 语句,从数据库中重建相同的结果并使用 CF 中的一些常量批量插入它。
INSERT INTO statistics_search_hits ( iln, artikelnummer, source, viewed, zeitstempel )
SELECT #reseller_id# as iln, searchtable.article, searchtable.source, 1, #now()#
FROM SearchTable
WHERE [search criteria statements here...]
最后,您可以构建一个存储过程来将批量条目传递给 SQL 服务器。
传递查询数据的 CFThread 听起来也是个好主意,但是如果您的站点很繁忙,则最好注意可能产生的线程数量,尤其是在用户不断执行搜索的情况下。检查您的 ColdFusion 版本中的 CF 线程限制和管理员中的设置。
希望这些通用指针有所帮助!^_^