第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

從MySQL觸發(fā)器調(diào)用PHP腳本

從MySQL觸發(fā)器調(diào)用PHP腳本

白衣非少年 2019-06-28 10:52:18
從MySQL觸發(fā)器調(diào)用PHP腳本在將記錄插入MySQL數(shù)據(jù)庫(kù)表時(shí),如何調(diào)用PHP頁面/函數(shù)?我們無法控制記錄插入過程。是否有可以調(diào)用PHP腳本的觸發(fā)機(jī)制?
查看完整描述

3 回答

?
鴻蒙傳說

TA貢獻(xiàn)1865條經(jīng)驗(yàn) 獲得超7個(gè)贊

我和一個(gè)朋友已經(jīng)想出了如何調(diào)用BernardoDamele的sys_valudf,但是這個(gè)解決方案并不像我想的那樣優(yōu)雅。以下是我們所做的:

  1. 由于我們使用的是Windows,所以我們必須使用以下方法編譯用于Windows的UDF庫(kù)

    羅蘭·布曼指示

    并將它們安裝在MySQL服務(wù)器上。
  2. 我們創(chuàng)建了一個(gè)調(diào)用sys_val的存儲(chǔ)過程。
  3. 我們創(chuàng)建了一個(gè)調(diào)用存儲(chǔ)過程的觸發(fā)器。

存儲(chǔ)過程代碼:

DELIMITER $$
CREATE PROCEDURE udfwrapper_sp(p1   DOUBLE,
 p2   DOUBLE,
 p3 BIGINT)BEGIN
 DECLARE cmd CHAR(255);
 DECLARE result CHAR(255);
 SET cmd = CONCAT('C:/xampp/php/php.exe -f "C:/xampp/htdocs/phpFile.php" ', p1, ' ', p2, ' ', p3);
 SET result = sys_eval(cmd);END$$;

觸發(fā)代碼:

CREATE TRIGGER udfwrapper_trigger AFTER INSERT ON sometable
FOR EACH ROW
CALL udfwrapper_sp(NEW.Column1, NEW.Column2, NEW.Column3);

對(duì)于存儲(chǔ)過程,我并不感到興奮,我也不知道它是否會(huì)產(chǎn)生額外的開銷,但它確實(shí)有效。每次向Someetable添加一行時(shí),觸發(fā)器都會(huì)觸發(fā)。


查看完整回答
反對(duì) 回復(fù) 2019-06-28
?
大話西游666

TA貢獻(xiàn)1817條經(jīng)驗(yàn) 獲得超14個(gè)贊

這應(yīng)該被認(rèn)為是非常糟糕的編程實(shí)踐從數(shù)據(jù)庫(kù)觸發(fā)器調(diào)用PHP代碼。如果你用這樣的“瘋狂”技巧來解釋你想要解決的任務(wù),我們可能會(huì)提供一個(gè)令人滿意的解決方案。


我應(yīng)該早點(diǎn)加上一些推理,但現(xiàn)在只找到時(shí)間去做這件事。感謝@CMC的重要評(píng)論。因此,PHP觸發(fā)器為應(yīng)用程序添加了以下復(fù)雜性:

  • @Johan說,在應(yīng)用程序中添加了一定程度的安全問題(外部PHP腳本調(diào)用、權(quán)限設(shè)置,可能還有SELinux安裝等等)。

  • 給應(yīng)用程序增加了額外的復(fù)雜性(要了解數(shù)據(jù)庫(kù)如何工作,現(xiàn)在需要了解SQL和PHP,而不僅僅是SQL),您還必須調(diào)試PHP,而不僅僅是SQL。

  • 向應(yīng)用程序添加額外的故障點(diǎn)(例如,PHP錯(cuò)誤配置),這也需要進(jìn)行診斷(我認(rèn)為觸發(fā)器需要保存一些調(diào)試代碼,這些代碼將記錄所有不成功的PHP解釋器調(diào)用及其原因)。

  • 增加性能分析的附加點(diǎn)。每個(gè)PHP調(diào)用都是昂貴的,因?yàn)槟枰獑?dòng)解釋器,將腳本編譯為字節(jié)碼,執(zhí)行它等等。因此,涉及此觸發(fā)器的每個(gè)查詢都會(huì)執(zhí)行得更慢。有時(shí)很難隔離查詢性能問題,因?yàn)镋XPLAIN沒有告訴您查詢由于觸發(fā)例程性能而變慢的任何信息。我也不知道如何將觸發(fā)時(shí)間轉(zhuǎn)儲(chǔ)到慢速查詢?nèi)罩局小?/trans>

  • 為應(yīng)用程序測(cè)試增加了一些問題。SQL可以很容易地測(cè)試。但是要測(cè)試SQL+PHP觸發(fā)器,您必須應(yīng)用一些技巧。


查看完整回答
反對(duì) 回復(fù) 2019-06-28
  • 3 回答
  • 0 關(guān)注
  • 1148 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)