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');
是否是可能挽救第二個查詢,並從內部存儲的插入頭程序?就像將所有標題作爲單個字符串傳遞並解析存儲過程一樣?