2012-02-25 2 views
-1

필자의 MySQL 데이터베이스가 : UPDATING 또는 INSERTING 일 때만 나의 PHP 스크립트가 무언가를해야한다.PHP에서 사용하기 위해 mysql에서 trigger를 사용할 수 있습니까?

그리고 어떻게해야할지 모르겠습니다. 이 일을하기 위해 어떤 기능이 있습니까? 나는 그것이 업데이트 또는 삽입 일 때 경고하기 위해 mysql에서 트리거를 사용하는 해결책에 대해 생각했다. 그리고 그걸로 내 PHP 스크립트의 기능을 실행합니다. 내가 할 수 있을까?

: (내 PHP 스크립트에서)

If ($trigger-> _updating) { 
    echo 'Works update'; 
} elseif ($trigger-> _inserting) { 
    echo 'Works insert'; 
}else{ 
    echo 'did nothing'; 
} 

상세 정보 : 내 MySQL 데이터베이스에서 테이블의 갱신 때 수표를 확인하거나 삽입 할 때 :

내가 수행하려고 같은 테이블에 새로운 레코드.

무엇을 원하십니까? PHP 스크립트의 경우, 업데이트 또는 삽입 일 때 html 페이지의 테이블에서 데이터를 업데이트하거나 새 데이터를 삽입했습니다.

내가 지금하고있는 일은 다음과 같습니다. 테이블의 데이터를 업데이트하거나 업데이트가 있는지 확인하려면 SELECT *를 수행 한 다음 데이터를 테이블 (내게는 비용이 많이 들기 때문에 비효율적이다.) 새 레코드 삽입시에도 마찬가지이다. 나는 아무것도 처리하지 않는 코드를 개선하고 싶다.

+1

수행하려는 작업에 대해 자세히 알려주시겠습니까? 왜 당신은 MySQL 트리거로 PHP 스크립트가 필요합니까? – Alp

+0

@Alp ok, 자세한 내용을 추가하십시오. – Dvex

+0

@Dvex - 일을 너무 복잡하게 만들지 마십시오. 논리적으로 만드십시오. 성능 문제가 발생하면 쿼리가 인덱스를 사용하고 있는지 확인하고, 프로파일 링을 수행하고 병 목 위치를 확인하십시오. 그것은 당신에게 두 번째 추측보다는이 방법으로 시간과 노력을 덜어줍니다. –

답변

2

PHP를 사용하지 마십시오.

대신 PHP를 사용하는 기술 (PHP, C++ 또는 명령 줄 프로그램 인 MySql)에 관계없이 일관성을 유지하는 방식으로 데이터베이스를 구성하십시오. 제약 조건과 트리거를 사용하여이 작업을 수행하십시오. 이렇게하면 데이터베이스의 데이터가 손상되거나 무효화되지 않습니다.

관련 문제