초보 php 방명록 만들기 성공은 했는데 궁금한점이 있어서 질문드립니다.

초보 php 방명록 만들기 성공은 했는데 궁금한점이 있어서 질문드립니다.

QA

초보 php 방명록 만들기 성공은 했는데 궁금한점이 있어서 질문드립니다.

본문

안녕하세요 현재 PHP를 공부하고 있습니다.

궁금한점이 있어 이렇게 지식인에 올립니다.
방명록에 글남기고 데이터 베이스에 글을 저장하는것까지 전부 성공했습니다 ㅜㅜ 
근데 궁금한것이있습니다.
1.html
이라는 파일을 만들고 1.html에 폼을 만들어서 2.php로 보내서 데이타 베이스에 기록을 하잖아요.

아래는 2,php입니다.

<?php
$name = $_POST["id"];
$content = $_POST["content"];
$connect=mysql_connect("localhost","root","123456789");
$result=mysql_select_db("guest",$connect);
$query ="insert into guestbook (id,content) values('$name','$content')";
$result=mysql_query($query, $connect) or die ("error : ".mysql_error());
mysql_close($connect);
echo "방명록을 작성하였습니다.";
?>

책을 보고 만들었는데 위부분이 어떻게 코딩되어져있는지는 이해가 갑니다.
근데 정말 궁금한건.. 코딩중에 데이터베이스에 접속하고 이런건 알겠는데 그렇게 접속하고 하는것들을
지금보면 변수에 다 담는데 변수를 실행한다거나 그런게 없는데 어떻게 이게 데이터 베이스에 접근되는지가 정말 궁금합니다.

예를들어 제가 알고있는 지식은
$a=1;
이라고 하고 
echo $a;
하면 1이 화면에 출력되잖아요.
이렇게 뭔가 실행하지도 않고 데이터베이스에 접근하고 삽입하고 하는게 어떻게 가능한건가요?

mysql_connect("localhost","root","111111");
그냥 이렇게 선언해줬으면 이해가 가는데.
$connect=mysql_connect("localhost","root","123456789");
이렇게 변수에 담았는데 어떻게 작동이 되었는지 그게 너무 궁금합니다.​
이해가 안갑니다. 설명 좀 부탁드립니다. 

이 질문에 댓글 쓰기 :

답변 2

mysql_connect("localhost","root","123456789");

 

이렇게 변수에 저장을 안하고 내장함수만 실행했다면 함수만 실행을 하죠.

 

$connect=mysql_connect("localhost","root","123456789");

 

이렇게 변수에 저장하고 내장함수를 실행했다면 내장함수의 리턴값을 변수에 저장해서 가지고 있을수 있게되요.​

 

만약 에러가나서 아래처럼 썼다면 현재라인에 에러로그를 추출하지만

mysql_connect("localhost","root","123456789") or die ("error : ".mysql_error()​);

 

$connect = mysql_connect("localhost","root","123456789"); 

 

이렇게 한다면 에러가나면 $connect에 에러값이 저장되게되고 성공한다면 성공값이 저장되게되어서 이후 다른 라인에서도 이 값을 구분으로 사용할수 있게되는거에요.

답변감사드립니다. 몰랐던 부분도 알게 되었네요.
제가 궁금했던 부분은 아니지만  ㅜㅜ 제가 궁금한 부분은
$connect=​mysql_connect("localhost","root","123456789");​
예를들어 위의 구문에서
변수에 담는것만으로도 함수가 실행되나요??
mysql_connect("localhost","root","123456789");​
이렇게 하면 함수가 실행되는건 이해가 가는데
$connect=​mysql_connect("localhost","root","123456789");​
이건 변수에 담은거잖아요 이렇게 변수에 담은 것만으로도 함수 실행이 된건가요?>?

mysql_connect("localhost","root","123456789");​
이건 함수만 실행하는거구요

$connect = mysql_connect("localhost","root","123456789");​
이건 함수를 실행해서 돌리고 결과값을 변수에 담는거에요.

mysql_connect의 경우에는 함수는 이미 실행했고 $connect에 성공 실패 에러 같은 결과값을 가지고 있는거죠.

사실상 name 과 content 그리고 query 를 제외하고는 내장 함수입니다.

별도의 변수에 담을 필요는 없다는것이죠 (하지만 연결을 위하여 호출을 위해 담아 사용할 뿐입니다.)

사실 저 DB 인서트부분도 별도로 처리하면 사실상 변수로 받는부분도 엄청 줄어듭니다

답변감사드립니다.
궁금한게 있는데 변수에 담은 것만으로도 실행이 될 수 있나요?
<?php
$name = $_POST["id"];
$content = $_POST["content"];
$connect=mysql_connect("localhost","root","123456789");
$result=mysql_select_db("guest",$connect);
$query ="insert into guestbook (id,content) values('$name','$content')";
$result=mysql_query($query, $connect) or die ("error : ".mysql_error());
mysql_close($connect);
echo "방명록을 작성하였습니다.";
?>
보시면 전부 변수에 담기만하고
mysql_select_db("guest",$connect);
이렇게 딱 함수를 사용한것도 아닌데 변수에 담기만 해도 실행이 된건가요?

해당 변수에 함수를 담아서 호출을 하는 형태입니다.
함수 안에보시면 처리되는 구문이 있으므로 해당내용을 변수로 보기보다는 함수 호출로 보는게 맞습니다.
변수에 담기만 해서 실행이 된다라기보다는 해당 변수를 통해 함수를 호출해서 처리가 된것입니다.
php 에서 자주 사용되는 부분이기도 합니다.

답변감사드립니다. 몰랐던 부분도 알게 되었네요.
제가 궁금했던 부분은 아니지만  ㅜㅜ 제가 궁금한 부분은
$connect=​mysql_connect("localhost","root","123456789");​
예를들어 위의 구문에서
변수에 담는것만으로도 함수가 실행되나요??
mysql_connect("localhost","root","123456789");​
이렇게 하면 함수가 실행되는건 이해가 가는데
$connect=​mysql_connect("localhost","root","123456789");​
이건 변수에 담은거잖아요 이렇게 변수에 담은 것만으로도 함수 실행이 된건가요?>?

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

회원로그인

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