728x90

[PHP] MYSQL 신규 테이블 생성 예제


아래 예제는 킴스큐RB 로 운용하는 테이블 정보를 phpMyAdmin 을 이용하여 테이블 내보내기를 하여 만들어진 SQL 문을 가져다가 만든 것이다. 직접 테스트해보고 테이블 구조는 약간 변경했다.

$A_TABLE, $B_TABLE 이라고 굳이 적은 이유는 테이블 생성, 데이터 복사 등을 편하게 하기 위한 목적이다.

아직 킴스큐RB 구조 모듈에 맞게 작업할 줄을 몰라서 현재 방법으로 정리해둔다.


첨부한 파일은 아래 코드임.



tb_copy.zip



<?php
defined('__KIMS__');
session_start();

// 테이블이 생성되기 전에 데이터 베이스 연결하기
// 데이터베이스는 mysql_select_db () 함수를 사용하여 선택
include_once 'db.info.php';
require '../_core/function/db.mysql.func.php';
require '../_core/function/lib/getContent.lib.php';
$DB_CONNECT = isConnectDb($DB);

// 데이터베이스 연결하기 완료

$A_TABLE = Sample;    // 원본 테이블
$B_TABLE = Sample_copy;    // 복사 또는 신규 생성할 테이블
$result = mysql_query("SELECT COUNT(*) from $B_TABLE", $DB_CONNECT);
if ( !$result )
{
$result =
"CREATE TABLE `$B_TABLE` (
  `uid` int(10) unsigned NOT NULL auto_increment,
  `user_id` varchar(20) NOT NULL default '',
  `user_name` varchar(16) NOT NULL default '',
  `Cate1` varchar(12) default NULL,
  `Cate2` varchar(12) default NULL,
  `subject` varchar(200) NOT NULL default '',
  `explain` varchar(200) default NULL,
  `direct` varchar(200) default NULL,
  `comment` text,
  `ABC` char(2) default NULL,
  `date` datetime NOT NULL default '0000-00-00 00:00:00',
  PRIMARY KEY  (`uid`)
) TYPE=MyISAM AUTO_INCREMENT=0 ";

mysql_query($result, $DB_CONNECT);
echo "테이블 생성완료!!";
}
else { echo "테이블이 이미 있어요"; }

//데이터베이스와의 연결 종료
mysql_close($DB_CONNECT);
?>


테스트 해보니 PHP 와 MYSQL 버전에 따라서 DB테이블 구조 다루는 방식이 약간 다른 거 같다.

버전이 서로 다른 걸 가지고 테이블을 생성하니까 생성이 안된다.

위의 것은 PHP 버전: 4.4.8 이고, MYSQL 4.0.27

테이블 구조는 원래 테이블에서 일부 테이블을 삭제한 것임

-- PHP Version: 5.4.27, MYSQL 5.1
-- Table structure for table `bbs_data`
CREATE TABLE `bbs_data` (
  `uid` int(11) NOT NULL AUTO_INCREMENT,
  `gid` double(11,2) NOT NULL DEFAULT '0.00',
  `name` varchar(30) NOT NULL DEFAULT '',
  `nic` varchar(50) NOT NULL DEFAULT '',
  `id` varchar(16) NOT NULL DEFAULT '',
  `pw` varchar(50) NOT NULL DEFAULT '',
  `category` varchar(100) NOT NULL DEFAULT '',
  `subject` varchar(200) NOT NULL DEFAULT '',
  `content` mediumtext NOT NULL,
  `regis` varchar(14) NOT NULL DEFAULT '',
  `modify` varchar(14) NOT NULL DEFAULT '',
  `d_comment` varchar(14) NOT NULL DEFAULT '',
  `upload` text NOT NULL,
  `ip` varchar(25) NOT NULL DEFAULT '',
  `adddata` text NOT NULL,
  PRIMARY KEY (`uid`),
  KEY `bbs` (`bbs`),
  KEY `category` (`category`),
  KEY `subject` (`subject`),
  KEY `d_regis` (`d_regis`),
) ENGINE=MyISAM  DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;


728x90
블로그 이미지

Link2Me

,