PHP를 배우는 도중에 몇가지 물어봅니다.

PHP를 배우는 도중에 몇가지 물어봅니다.

QA

PHP를 배우는 도중에 몇가지 물어봅니다.

본문

$sql="CREATE TABLE game(FirstName CHAR(30),LastName CHAR(30),Age INT)"; 

 

위와같이 테이블은 생성하는 구문에서요.

CHAR(30), INT이 무엇을 뜻하는 것인가요?

 

<html>

<body>

<form action="insert.php" method="post">
Firstname: <input type="text" name="firstname">
Lastname: <input type="text" name="lastname">
Age: <input type="text" name="age">
<input type="submit">
</form>

</body>

</html>

 

============================================================================

 

<?php

$con=mysqli_connect("example.com","peter","abc123","my_db");
// Check connection
if (mysqli_connect_errno()) {
  echo "Failed to connect to MySQL: " . mysqli_connect_error();
}

// escape variables for security
$firstname = mysqli_real_escape_string($con, $_POST['firstname']);
$lastname = mysqli_real_escape_string($con, $_POST['lastname']);
$age = mysqli_real_escape_string($con, $_POST['age']);

$sql="INSERT INTO Persons (FirstName, LastName, Age)
VALUES ('$firstname', '$lastname', '$age')";

if (!mysqli_query($con,$sql)) {
  die('Error: ' . mysqli_error($con));
}
echo "1 record added";

mysqli_close($con);

?>

 

입력폼에 한글을 입력하고 POST값으로 넘겨줬더니

DB에 한글이 깨어져서 저장이 됩니다.


이거 어떻게 해결을 하나요?

이 질문에 댓글 쓰기 :

답변 3

1번 답 : 데이터 입력되는 값의 형식을 정의하는 것입니다. 아래 링크 참조

 

http://comefeel.com/tt/comefeel/entry/MySQL%EC%9D%B4-%EC%A7%80%EC%9B%90%ED%95%98%EB%8A%94-%EC%BB%AC%EB%9F%BC%ED%83%80%EC%9E%85 

 

2번 답 : 페이지 인코딩 선언하세요

 

http://msdn.microsoft.com/ko-kr/library/cc295274.aspx 

DB 셋팅상에 인코딩이 페이지 인코딩과 동일한지 살펴보세요

CHAR(30), INT 는 테이블 생성시 DB 필드의 자료형을 지정하는 것입니다.

 

CHAR(30) = CHARACTER (1 byte) * 30 = 30 bytes (문자 30개 저장 가능)

INT = INTEGER (4 byte) = 4 bytes (–2,147,483,648 ~ 2,147,483,647 범위의 숫자 저장 가능)

 

그리고 한글이 깨지는 문제는

입력받은 한글 인코딩과 DB 한글 인코딩이 일치하지 않는듯합니다. (대게 euc-kr, utf-8 간의 문제)

 

입력받은 한글값이 넘어오면 DB 인코딩에 맞게 변환을 한뒤 DB에 INSERT 해주면 됩니다. 

인코딩 문제에 대한 자세한 내용은 링크를 걸어둡니다.

http://ceomk.tistory.com/47 

답변을 작성하시기 전에 로그인 해주세요.
전체 52
QA 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1402호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT