我實際上想要在記錄添加到數據庫時以郵件或某種方式通知用戶。它可能嗎?像ON INSERT
觸發器,我執行一些PHP?可能對MySQL插入執行PHP嗎?
回答
只要檢查插入是否成功,然後發送郵件給客戶。
你不能用mysql事件執行PHP腳本。
你必須在PHP端做到這一點。
檢查插入命令是否成功執行併發送郵件。
你不能在一個MySQL查詢執行PHP,但你可以檢查,如果查詢成功進行,然後郵寄人,mysql_query()
將返回boolean
(true
或false
)。如果你正在使用PHP,讓我們用正確的方式;)
if(mysql_query('// your query here')){
//mail someone
}
這是可能從MySQL中觸發了由安裝MySQL sys_exec UDF
但是執行外部程序,它似乎是一個開銷做所以。爲什麼你會讓MySQL觸發通知,當它是插入PHP的時候,那時你知道你輸入了數據?
我正在使用一個WordPress插件,我不知道這是在哪裏處理的...通過代碼的挖掘需要時間 – 2011-04-21 14:37:06
相信我,對MySQL進行更改(例如創建觸發器,調用外部程序,照顧錯誤比挖掘插件的低谷代碼更麻煩。 – 2011-04-21 14:37:59
在數據庫插入/修改/刪除中生成通知(電子郵件等)的最快最簡單的方法是通過在數據庫中執行更改的腳本執行此操作。
<?php
$res = mysql_query('INSERT INTO `table` (`field1`) VALUES ("One")');
if($res){
# Send Notification
}
?>
如果做不到這一點,在你沒有執行自己的數據庫操作(因爲某些原因)的情況下,還是要能夠執行定時彙總(每小時,每天,每週),你將需要使用類似Cron作業的東西來輪詢數據庫並檢查更改。
<?php
# A file containing an integer which is the Highest ID in the table
$indexFile = 'lastIndexID.txt';
# Get that Highest ID from the file, if it exists
$lastIndex = 0;
if(file_exists($indexFile )
$lastIndex = (int) file_get_contents($indexFile);
# Check the Database
$res = mysql_query('SELECT `id` FROM `table` ORDER BY `id` DESC LIMIT 1');
if($res && mysql_num_rows($res)==1){
$row = mysql_fetch_assoc($res);
# Check if the ID has increased (ie new rows added)
if($row['id']>$lastIndex){
# Send Notification
# The number of New Rows will be the difference between $row['id'] and $lastIndex
# Update the Index File
file_put_contents($indexFile , $row['id']);
}
}else{
# An Error Occurred
}
?>
- 1. 可點擊的HTML表格執行MySQL插入語句(PHP,可能是JavaScript)
- 2. php Mysql插入:不能再插入
- 3. PHP PDO Mysql插入性能
- 4. PHP內容插入/執行
- 5. TrayIcon插入JFrame,可能嗎?
- 6. Php Mysql Ajax插入多行
- 7. mysql的PHP插入多行
- 8. PHP MySQL插入行限制
- 9. 在插入時爲輸入數據添加後綴。這可能嗎? (mySQL/php)
- 10. 我可以自動從PHP定位MySQL可執行文件嗎?
- 11. MySQL插入PHP
- 12. PHP插入MySql
- 13. PHP/MySQL插入
- 14. 插入php + mysql
- 15. 當執行mysql插入選擇查詢 - 我們可以做條件檢查嗎?
- 16. 這個MySQL插入可以加速嗎?
- 17. MySQL查詢(插入)內部功能無法執行
- 18. 動態插入php mysql和性能
- 19. Perl DBI腳本可以在db2上執行「緩衝插入」嗎?
- 20. 在PostgreSQL中執行SELECT語句時可以插入記錄嗎?
- 21. PHP的MySQL插入
- 22. 是基於MySQL的列中的某一列進行插入的可能嗎?
- 23. mysql插入性能
- 24. 我可以同時在mysql中插入2行或數組嗎
- 25. 插入可執行從外部文件
- 26. PHP文件執行時可能會刪除自己嗎?
- 27. 可能所有的服務器都執行php腳本嗎?
- 28. php:捕獲異常並繼續執行,有可能嗎?
- 29. 使用PHP執行Oracle過程 - 可能嗎?
- 30. 該功能可以執行嗎?
爲什麼你需要這樣做?不會從PHP代碼插入..? – Shameer 2011-04-21 10:41:58
@Shameer,我使用的是一個WordPress插件,我不知道或者需要很長的時間才能找出這個處理的位置,我猜... – 2011-04-21 14:35:58
它不會花費太多時間。檢查插件目錄以查找哪些代碼插入到數據庫中。然後在成功插入時編寫郵件功能。 – Shameer 2011-04-22 06:57:19