[응용편] 회원관리 페이지 만들기 (insert.php - 1)

💡 회원 가입 폼에 작성한 정보를 DB로 보내주는 페이지를 생성해보자

처리페이지를 눈으로 확인해보기 위해 잠깐 join.phpform태그의 방식을 get으로 바꿔주자!


insert.php를 어떻게 구성할 것인가에 대한 순서 설명과 내부 설명 간략하게

📌 php 변수 선언 방식 : $name


🔴 데이터 전송 방식

form 요소에 name 속성 줘야하는 이유!!!

스크립트에는 name이 필요없지만 프로그래밍 이름에서는 name 값이 꼭 필요함

  • method ="get"
$_GET["필드의 name값"]
// 대문자 필수
<p>
  <a href="insert.php?u_name=홍길동&u_id=hong">get방식</a>
</p>
  • method ="post"
$_POST["필드의 name값"]
// 대문자 필수

🟠 php 값 확인

  • JS : document.write();
  • PHP : echo $u_name;

🟡 PHP DB관련 함수(mysql)

  • 5.X ⇒ mysql~
  • 7.X ⇒ mysqli~
  • DB 접속 : mysqli_connect("호스트", "사용자", "비밀번호");
  • DB 선택 : mysqli_select_db("연결객체", "DB명");
    $dbcon = mysqli_connect("호스트", "사용자", "비밀번호");
    mysqli_select_db("$dbcon", "DB명");
    
    $dbcon = mysqli_connect("호스트", "사용자", "비밀번호", "DB명");
  • 접속 실패 시 메세지
    $dbcon = mysqli_connect("호스트", "사용자", "비밀번호", "DB명") or die ("접속에 실패하였습니다.");

🟢 쿼리 작성

$sql =  "insert into members(u_name, u_id, pwd, birth, postalCode, add1, add2, email, mobile) values('', '', '', '', '', '', '', '', '');

$sql =  "insert into members(u_name, u_id, pwd, birth, postalCode, add1, add2, email, mobile, reg_date) values('홍길동', 'hong', '1234', '20211203', '06253', '서울 강남구 강남대로 123', '123-456', '[email protected]', '01011112222', '2021-12-03');";
  • sql의 구문을 작은 따옴표 쓰는 이유는 php 안에 "" 안에 들어갈 것이라서 겹치지 않기 위해
$sql =  "insert into members(u_name, u_id, pwd, birth, postalCode, add1, add2, email, mobile) values('$u_name', '$u_id, '$pwd', '$birth', '$postalCode', '$add1', '$add2', '$email', '$mobile');";
$sql =  "insert into members(u_name, u_id, pwd, birth, postalCode, add1, add2, email, mobile) values('".$u_name."', '".$u_id."','".$pwd."', '".$postalCode."', '".$add1."','".$add2."', '".$email."', '".$mobile."', '".$reg_date."');";
var txt = "a";
txt += "b";
document.write(txt) // ab
$sql = "insert into members(";
$sql .= "u_name, u_id, pwd, birth, postalCode, addr1, addr2, email, mobile, reg_date";
$sql .= ") values(";
$sql .= "'$u_name', '$u_id', '$pwd', '$birth', '$postalCode', '$add1', '$add2', '$email', '$mobile', '$reg_date'";
$sql .= ");";

// PHP의 .은 JS +와 같은 뜻

🔵 데이터베이스에 쿼리 전송

  • mysqli_query("연결객체", "전달할 쿼리");
  • 그냥 쓰면 문장이 너무 길어지니 변수를 사용하자~~!
mysqli_query($dbcon, $sql);
  • mariaDB에서 글자가 깨진다면 (문자셋)
$dbcon = mysqli_connect("localhost", "root", "", "front") or die ("접속에 실패하였습니다.");
mysqli_set_charset($dbcon, "utf8");

🟣 DB(연결) 종료

  • mysqli_close(닫을 DB 명);
  • 한페이지의 두개의 데이터베이스 연결도 가능함
    $dbcon = mysqli_connect("호스트", "사용자", "비밀번호", "DB명") or die ("접속에 실패하였습니다.");
    $dbcon2 = mysqli_connect("호스트", "사용자", "비밀번호", "DB명") or die ("접속에 실패하였습니다.");
    $dbcon3 = mysqli_connect("호스트", "사용자", "비밀번호", "DB명") or die ("접속에 실패하였습니다.");
  • () 안 매개변수에 닫을 DB명을 적어줘야한다.
    mysqli_close($dbcon);

🟤 리디렉션 : 주소바꾸기(다른 페이지로 이동해)

  • php에서 할 수 없음. js에서 해야함
  • location.href = <a href=""> 자바 스크립트에 location과 html a태그는 같은거라고 보자!
<!-- 리디렉션 : js로 작업 -->
<script type="text/javascript">
  location.href = "welcome.php";
</script>
  • 하지만 php로 꼭 하고싶으면 (echo ""따옴표 안에는 엔터칠수 있음)
  • 대신 따옴표 조심!! or 역슬래쉬 사용하기
echo "
<script type=\"text/javascript\">
	// location.href = 'welcome.php';
	location.href = \"welcome.php\";
</script>
";

좋은 웹페이지 즐겨찾기