3
我的应用程序通过一个存储过程将每个http请求的详细信息记录到多个MySQL表中,存储过程向应用程序返回一个唯一的请求ID。MySQL存储过程 - 插入多行
CALL http_req('ip', 'url', 'method', 'timestamp', @error, @request_id);
现在我也希望所有的HTTP请求头登录到一个表,在一个单独的行中的每个标题:
CREATE TABLE `http_header` (
`id` INT(10) UNSIGNED NOT NULL AUTO_INCREMENT,
`request_id` INT(10) UNSIGNED NOT NULL,
`name` VARCHAR(255) NOT NULL COLLATE 'utf8_unicode_ci',
`value` VARCHAR(255) NOT NULL COLLATE 'utf8_unicode_ci',
PRIMARY KEY (`id`))
的问题是,每个客户都有不同的数量和类型头。我还没有找到一种方法将所有头部细节传递给我的存储过程,然后将它们插入上表中。
目前我有生成和存储过程调用之后,从我的应用程序执行第二插入查询保存标题:
INSERT INTO http_header (request_id, name, value)
VALUES (20153, 'cache-control', 'max-age=0'),
(20153, 'accept', 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8'),
(20153, 'accept-encoding', 'gzip,deflate,sdch');
是否是可能挽救第二个查询,并从内部存储的插入头程序?就像将所有标题作为单个字符串传递并解析存储过程一样?