2011-04-21 3 views
4

실제로 레코드를 데이터베이스에 추가 할 때 메일을 보내거나 사용자에게 알리고 싶습니다. 그것은 가능합니까? ON INSERT 트리거처럼 일부 PHP를 실행합니까?MySQL 인서트에서 PHP를 실행할 수 있습니까?

+4

왜 이렇게해야합니까? PHP 코드에서 삽입 하시겠습니까? – Shameer

+0

@Shameer, WordPress 플러그인을 사용하고 있습니다. 잘 모릅니다. 또는 이것이 처리되는 곳을 알아내는 데 아주 오래 걸릴 것입니다. –

+0

너무 많은 시간이 걸릴 것입니다. 플러그인 디렉토리에서 db에 삽입 할 코드를 찾으십시오. 그런 다음 삽입 성공시 메일 기능을 작성하십시오. – Shameer

답변

2

삽입이 성공적인지 확인한 다음 고객에게 메일을 보내십시오.

3

mysql 이벤트로 PHP 스크립트를 실행할 수 없습니다.

PHP 끝에서이 작업을 수행해야합니다.

삽입 명령이 성공적으로 실행되고 메일을 보내는지 확인하십시오.

1

당신은 MySQL의 쿼리에서 PHP를 실행 캔트하지만 쿼리가 성공적으로 만든 후 mysql_query()boolean (true 또는 false)을 반환합니다, 사람을 보내 경우 당신은 확인할 수 있습니다. 당신이 PHP를 사용하는 경우의이 올바른 방법으로 사용하게;

if(mysql_query('// your query here')){ 
    //mail someone 
} 
1

그러나 MySQL의 sys_exec UDF를 설치하여 트리거의 MySQL 내에서 외부 프로그램을 실행할 수있다), 할 수있는 오버 헤드 있다는 것 그래서. 삽입을 수행하는 PHP에서 MySQL이 알림을 트리거하게하는 이유는 무엇입니까? 그리고 그 시점에서 데이터를 입력했는지 알 수 있습니까?

+0

WordPress 플러그인을 사용하고 있는데 어디서 처리해야하는지 모르겠다. 코드를 파헤 치면 시간이 걸릴 것이다. –

+0

트리거를 생성하고, 외부 프로그램을 호출하고, 돌보는 것과 같은 MySQL에 대한 변경 사항을 저에게 맡기십시오. 오류는 플러그인의 물마루 코드를 파는 것보다 훨씬 번거 롭습니다. –

0

데이터베이스 삽입/수정/삭제에 대한 알림 (전자 메일 등)을 생성하는 가장 빠르고 쉬운 방법은 데이터베이스에서 변경 작업을 수행하는 스크립트에서 수행하는 것입니다.

<?php 
$res = mysql_query('INSERT INTO `table` (`field1`) VALUES ("One")'); 
if($res){ 
# Send Notification 
} 
?> 
당신은 (어떤 이유로) 데이터베이스 조작 자신을 수행하지 않는 경우에, 그 실패

하거나 시간 초과 요약 (시간별, 일별, 주별) 당신이 필요 수행 할 수 있도록하려면 Cron Job과 같은 것을 사용하여 데이터베이스를 폴링하고 변경 사항을 확인하십시오.

<?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 
} 
?> 
관련 문제