2011-03-30 3 views
1

SQL은 거의 알지 못하지만 SQL Server가 데이터베이스에 열을 추가하는 명령이없는 경우이 명령을 발견했습니다. 슬프게도 MySQL 데이터베이스에 대해 실행될 때 구문 오류가 반환되어 작동하지 않습니다.PDO를 사용하지 않는 경우 MySQL 열 추가

$query = $dbh->prepare("if not exists (select * from syscolumns where id=object_id(':table_name') and name='where') alter table :table_name add where int(2)"); 

if($query->execute(array(':table_name'=>'registrations'))) { 
    //twist and shout 
} else { 
    print_r($query->errorInfo()); 
} 

그렇다면 'int (2)'열이 존재하지 않는다면 어떻게 변경해야합니까?

+0

왜 동적으로 열을 만들어야합니까? –

+1

예약어 (예 : WHERE)를 열 이름으로 사용하지 마십시오. – Lunc

+0

우수한 점, 나는 그 것을 더 안전하고 이해하기 쉬운 것으로 바꾸어야한다. 필자는 PHP 스크립트를 통해이 작업을 수행했습니다. 액세스 수준에 따라 데이터베이스 서버에 직접 액세스 할 수없는 유일한 방법이기 때문입니다. – shanethehat

답변

1

하나의 명령문 내에서이를 처리하는 저장 프로 시저를 만들어야합니다. 여기에서 설명했습니다 : add column to mysql table if it does not exist

+0

그냥 해보고 결과 오류를 잡아라. 그것은 내가 일하는 것을 좋아하지 않지만, 늦었고 고쳐야합니다. 고마워요! – shanethehat

관련 문제