본문으로 바로가기

[PHP] Azure DB 연동

category 개발삽질방/Web 2018. 11. 24. 16:54
반응형

PHP의 최신 PDO를 사용하면 Azure DB도 매끄럽게 연결된다.

(물론 Azure Webapp 기준이다)

<?php
// DB connection info
$host = "example.database.windows.net";
$user = "example";
$pwd = "password";
$db = "example";
try{
    $conn = new PDO( "sqlsrv:Server= $host ; Database = $db ", $user, $pwd);
    $conn->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION );
    $sql = "INSERT into T_Join VALUES 
            ('".$_POST["name"]."', '".$_POST["tel1"].$_POST["tel2"].$_POST["tel3"]."',"
            .$_POST["entry"].", ".$_POST["type"].", '".$_POST["etc"]."', GETDATE())";
    $conn->query($sql);
	echo "<p><h3>등록완료</h3></p><p><a href=\"index.php\">[ 메인으로 돌아가기 ]</a></p>";
}
catch(Exception $e){
	if($e->errorInfo[0] == 23000) {
      echo "이미 등록된 사용자입니다.";
	} else {
		die(print_r($e));
	}
}
?>

데이터 존재 유무 체크

<?php
// DB connection info
$host = "example.database.windows.net";
$user = "example";
$pwd = "password";
$db = "example";
try{
    $conn = new PDO( "sqlsrv:Server= $host ; Database = $db ", $user, $pwd);
    $sql = "SELECT * FROM T_Join WHERE name='".$_POST["name"]."' AND hp='".$_POST["tel1"].$_POST["tel2"].$_POST["tel3"]."'";
	//$sql = "SELECT * FROM T_Join";
	$stmt = $conn->query($sql);
	$datas = $stmt->fetchAll();
	if(count($datas) > 0) {
		echo "<h3>등록된 사용자 정보입니다.</h3>";
		echo "<table align=\"center\">";
		foreach($datas as $data) {
			echo "<tr><td>이름</td><td>".$data['name']."</td></tr>";
			echo "<tr><td>전화번호</td><td>".$data['hp']."</td></tr>";
			echo "<tr><td>참가자 수<br>(본인포함)</td><td>".$data['entry']."명</td></tr>";
			echo "<tr><td>캠핑형태</td><td>";
			if($data['type'] == 1) {
				echo "텐트";
			} else if($data['type'] == 2) {
				echo "카라반";
			} else if($data['type'] == 3) {
				echo "캠핑카";
			} else if($data['type'] == 4) {
				echo "폴딩트레일러";
			} else if($data['type'] == 5) {
				echo "기타";
			}
			echo "</td></tr>";
			echo "<tr><td>등록일</td><td>".$data['date']."</td></tr>";
		}
		echo "</table>";
		echo "<p>참가를 취소하려면 이름과<br>핸드폰 번호를 한번 더 입력하세요</p>";
		echo "<p><form id=\"frm\" action=\"cancel.php\" method=\"post\"></p>";
		echo "
<table align=\"center\">
<tr>
<th align=\"left\">이름</th> 
<th><input type=\"name\" name=\"name\" id=\"name\" required></th>
</tr>";
		echo "
<tr>
<th align=\"left\">휴대전화</th>
<th>
<select name=\"tel1\" id=\"tel\1\">
                <option value=\"010\">010</option>
                <option value=\"011\">011</option>
                <option value=\"017\">016</option>
                <option value=\"017\">017</option>
                <option value=\"019\">019</option>
            </select> - <input size=\"4\" type=\"text\" name=\"tel2\" id=\"tel2\" maxlength=\"4\" required/> - <input size=\"4\" type=\"text\" name=\"tel3\" id=\"tel3\" maxlength=\"4\" required>
</th></tr></table>";
		echo "
<p><input class=\"submit\" type=\"submit\" value=\"등록취소\"/></p>";
	} else {
		echo "<h3>등록된 사용자가 없습니다.</h3>";
	}
}
catch(Exception $e){
    die(print_r($e));
}
반응형