2011-12-14 3 views
0

여러 WHMCS 후크에 연결되는 일부 함수를 만들었습니다. 내 기능 중 일부는 필자의 기능을 위해 만든 데이터베이스의 새 테이블이되어야합니다.WHMCS, 코드를 한 번만 실행하는 방법

내가 뭘하고 싶은지 프로그래밍 방식으로 테이블을 데이터베이스에 만들 수 있지만 한 번만 테이블을 생성하고 결코 코드를 다시 실행 코드를 실행하는 것입니다.

어떻게 수행 할 수 있는지 또는 좋은 아이디어가 있습니까?

if(!mysql_num_rows(mysql_query("SHOW TABLES LIKE 'modulename_%'"))) { 

    // there are no tables in the database for our module so we need to create them 

} 

내가 다음 데이터베이스 만들려면 다음을 사용 : 내가 만든 내 WHMCS 모듈에서

답변

1

, 나는 다음과 같은 논리를 사용 나는이되는 많은이

$createTable[] = 'CREATE TABLE IF NOT EXISTS `modulename_table` (`id` int(11) NOT NULL auto_increment, PRIMARY KEY (`id`)) ENGINE=MyISAM DEFAULT CHARSET=latin1;'; 

를 I 다음 루프를 통해 실행하십시오.

$createTableCount = 0; 
for($s=0,$e=count($createTable); $s<$e; $s++){ 
     $query = mysql_query($createTable[$s]); 
     if($query) 
      $createTableCount++; 
} 

다음 각 열을 테이블에 추가하십시오.

$alterTable[] = 'ALTER TABLE `modulename_table` ADD `something` int(11) NOT NULL;'; 

나는 또한 루프를 통해 실행됩니다 -이 새로운 열/테이블을 추가하고 설치 스크립트를 다시 실행하고 이미 존재하지 않는 모든 열/테이블을 추가 할 수 있습니다.

+0

사용자가 사이트에 올 때마다 데이터베이스를 쿼리하여 논리를 손상시킵니다. 나는 모듈을 만들지 않았고 WHMCS 후크에 매달린 함수들만 만들었다. –

+0

@MerianosNikos 당신은 이미 연결되어있는 데이터베이스를 질의하거나 (db 생성 후 생성 할 수있는) 파일을 검사해야 할 것입니다. 독립 실행 형 설치 스크립트를 제공하지 않는 한 다른 방법은 없습니다. – Prisoner

+0

쿨! 설치 후 파일을 생성하고 그 파일이 존재하는지 확인합니다. 고마워요! :) –

관련 문제