db생성
cmd 로 mysql 실행
db phptest 생성 member 테이블생성 모든권한으로의 유저생성을 마친 후
netbean으로 돌아와 php 코딩!
회원가입 페이지
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>회원가입</title>
</head>
<body>
<form method="post" action="insrtpro.php">
<table border="1"><!--회원가입 폼-->
<tr>
<td>이메일</td>
<td><input type="test" size="25" name="id" placeholder="e-mail" required onfocus></td>
</tr>
<tr>
<td>비밀번호</td>
<td><input type="password" size="20" name="password" placeholder="6~16글자이내" required onfocus></td>
</tr>
<tr>
<td>이름</td>
<td><input type="test" size="10" name="name" placeholder="10글자 이내" required ></td>
</tr>
<tr>
<td>전화번호</td>
<td><input type="test" size="13" name="tel" placeholder="000-0000-0000" ></td>
</tr>
<tr>
<td colspan="2"><!-- colspan: 열을 합치고자 할때-->
<input type="submit" value="가입하기">
<input type="submit" value="재작성">
</td>
</tr>
</table>
</form>
</body>
</html>
회원가입 처리.php
PDO(PHP Data Object)란 PHP에서 데이터베이스에 접속할 때 여러 가지 처리를 하기 위한 기능(메소드)을 모은 클래스입니다.
db접속설정
<?php
$id = $_REQUEST["id"];
$password = $_REQUEST["password"];
$name = $_REQUEST["name"];
$tel = $_REQUEST["tel"];
//데이터베이스 로그인 설정
$db_user="dbwls";
$db_pass="123456";
$db_host="localhost";
$db_name="phptest";
$db_type="mysql";
$dsn="$db_type:host=$db_host;db_name=$db_name;charset=utf8";//DSN(Data Source Name)
try{//에러가 났을시
$pdo= new PDO($dsn,$db_user,$db_pass);//pdo를 인스턴화 , 자바에선.같은존재가 php에선 ->
$pdo->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION);
$pdo->setAttribute(PDO::ATTR_EMULATE_PREPARES,false);
print("DB접속완료");
} catch (PDOException $Exception){
die('오류:'.$Exception->getMessage());
}
?>
데이터베이스에 연결하기 위해서 PDO 객체의 생성자에 DSN(Data Source Name), 아이디, 비밀번호를 인자로 입력합니데이터베이스 연결 객체를 생성한 후에 setAttribute 메소드를 사용해서 두 가지 속성을 지정하고 있습니다.
-PDO::ATTR_EMULATE_PREPARES: 이 속성은 Preppared Statement 를 데이터베이스가 지원 하지 않을 경우 에뮬레이션 하는 기능으로 false 를 지정해서 데이터베이스의 기능을 사용하도록 합니다.
-에뮬레이션은 하나의 시스템이 다른 시스템을 흉내 내도록 하는 것입니다
-PDO::ATTR_ERRMODE : 이 속성은 PDO 객체가 에러를 처리하는 방식을 결정합니다.
PDO::ERRMODE_EXCEPTION 은 에러가 발행했을때 PDOException 을 throw 하도록합니다.
-이 경우 try {} catch{} 를 사용하여 에러를 처리하면 됩니다. 다른 방법으로는 PDO::ERRMODE_SILENT(에러 코드만 설정), PDO::ERRMODE_WARNING(E_WARNING 발생)이 있습니다