채택완료
sql 명령어 조건절을 이미 충족한 경우엔 더 이상 작동 않게 하려면?
sql_query("ALTER TABLE `g5_memo` CHANGE `me_id` `me_id` INT( 11 ) NOT NULL AUTO_INCREMENT");
만약, g5_memo 테이블이 위 핑크색 조건을 이미 충족한 상태라면
더 이상 위 명령어가 작동 않게 하려면 어떻게 조건을 줘야 할까요?
파일 하나 새로 만들어 실행 후 제거해도 되는데, 걍 한 파일에 모두 넣어 처리하려고 합니다.
답변 5개 / 댓글 3개
채택된 답변
+20 포인트
2017-04-15 (토) 19:47:16
이렇게 해보세요.
Copy
$row = sql_fetch(" show columns from g5_memo where Field='me_id' and Type='int(11)' and Extra='auto_increment' ");if(!$row['Field']) { sql_query("ALTER TABLE `g5_memo` CHANGE `me_id` `me_id` INT( 11 ) NOT NULL AUTO_INCREMENT");}
답변에 대한 댓글 3개
sinbi
2017-04-15 (토) 20:32:40
2017-04-15 (토) 22:52:20
위의 쿼리문은 해당테이블에서 sql 질의만 한 것이므로 폼(form) 태그의 name과는 상관이 없습니다.
위의 sql_fetch() 쿼리로 얻어올 데이타의 항목이 "show columns" 이므로, sql 질의 조건이 충족된다면 배열에 들어오는 내용이 다음과 같기 때문입니다.
[code]
print_r($row);
[/code]
결과
Array
(
[Field] => me_id
[Type] => int(11)
[Null] => NO
[Key] => PRI
[Default] =>
[Extra] => auto_increment
)
위의 sql_fetch() 쿼리로 얻어올 데이타의 항목이 "show columns" 이므로, sql 질의 조건이 충족된다면 배열에 들어오는 내용이 다음과 같기 때문입니다.
[code]
print_r($row);
[/code]
결과
Array
(
[Field] => me_id
[Type] => int(11)
[Null] => NO
[Key] => PRI
[Default] =>
[Extra] => auto_increment
)
sinbi
2017-04-16 (일) 08:22:30
아하, print_r로 조사하는 거였군요.
자세히 설명해 주셔서 감사합니다. ^^
자세히 설명해 주셔서 감사합니다. ^^
관심 갖고 답변해주신 분들 모두 감사합니다.
castro116
2017-04-15 (토) 15:12:23
감사ㅓ합니다.
2017-04-15 (토) 12:38:06
그누보드 소스에 보면, 아래와 같은 코드가 있습니다.
참고해 보세요.
Copy
$sql = " SHOW COLUMNS FROM `{$g5['board_table']}` LIKE 'bo_use_cert' ";$row = sql_fetch($sql);if(strpos($row['Type'], 'hp-') === false) { sql_query(" ALTER TABLE `{$g5['board_table']}` CHANGE `bo_use_cert` `bo_use_cert` ENUM('','cert','adult','hp-cert','hp-adult') NOT NULL DEFAULT '' ", false);}
2017-04-15 (토) 12:35:58
답변을 작성하려면 로그인이 필요합니다.
근데,
me_id 는 왜 Field 라고 이름이 칭해지는 건가요?
DB 테이블 보니까, me_id 경우 컬럼명이 Name이던데...