[MySQL & PHP] 15장 MySQL을 이용하는 데 필요한 PHP
MySQL & PHP 학습/정리 그리고 체크! 2016. 2. 22. 02:43
정리
1. Apache, MySQL, PHP의 동작과 웹 응용프로그램에서의 역할
1. 15장과 16장에서 만들 예제
이번 장과 16장에서는 MySQL을 제어하기 위한 스크립트 언어인 PHP와 HTML의 기초지식에 대해 배워 보겠습니다. 여기에서 등장하는 스크립트를 활용하면 다음과 같은 웹페이지가 완성됩니다(아직 MySQL은 사용하지 않겠습니다.)
예제를 만들 때에는 차후에 공개할 웹 페이지를 상상하면서 자유롭게 디자인해보기 바랍니다.
2. 웹 응용프로그램에서 MySQL 이용하기
14장까지는 MySQL만을 이용해서 학습했습니다. MySQL 콘솔창에서 SELECT나 INSERT와 같은 SQL 명령을 입력함으로써 비로소 MySQL이 시작 된다는 것을 배웠습니다. 즉, 'MySQL의 데이터베이스를 이용하려면 SQL을 사용할 줄 알아야 한다.'라는 것이 전제가 되었던 것입니다.
만약, MySQL을 조작하는 방법이 이것뿐이라면, MySQL이 전 세계에서 이렇게 많은 사랑을 받지는 못했을 것입니다.
MySQL의 사용법은 그렇게 무미건조하지만은 않습니다. 브라우저 화면에서 단추를 클릭하는 것만으로 MySQL의 데이터베이스를 조작하는 응용프로그램을 만들 수도 있습니다. 즉, '단추를 클릭하면 할당된 기능을 실현하는 SQL 문을 생성한다.'라는 구조로 만들어 두면 사용자가 SQL 문을 몰라도 브라우저에서 간단하게 데이터베이스를 이용할 수가 있습니다. 실제로, 게시판과 쇼핑몰, 판매 관리 시스템, 학교의 교무 관리 시스템 등 다양한 분야에서 MySQL을 이용한 시스템이 사용되고 있습니다.
이처럼, 브라우저를 사용자 인터페이스로 만들고, 네트워크를 통해 웹 서버 측에 배치한 MySQL을 조작하는 시스템을 웹 응용프로그램(Web Application)이라고 합니다. 웹 응용 프로그램을 만들려면 프로그램 언어가 필요한데, MySQL은 Perl과 C, PHP, Java 등 많은 프로그램 언어를 지원하고 있습니다.
3. 웹을 이용하는 구조
3.1 웹 서버와 클라이언트
웹을 이용하는 구조에 대해 생각해 봅시다. 웹 페이지에는 '하이퍼링크'라는 것이 있는데 이를 클릭하면 전 세계의 모든 콘텐츠에 접속할 수 있습니다. 하이퍼링크에는 '◯ ◯ 이라는 장소에 있는 Х Х 라는 문서'라는 정보가 들어 있습니다.
웹 서버
이 '◯ ◯이라는 장소'는 특정 웹 서버를 의미합니다. 웹 서버는 인터넷상에 접속되어 있는 컴퓨터를 가리키는데, 이 컴퓨터에는 서버로서 기능을 하기 위한 응용프로그램이 설정되어 있습니다. 서버는 접속한 클라이언트의 요구에 맞춰 저장된 데이터를 보내거나 요청한 처리를 실행해서 그 결과를 돌려주는 일을 합니다.
클라이언트
웹 서버를 이용하는 사용자의 컴퓨터를 클라이언트라고 합니다. 사용자가 하이퍼링크를 클릭하면 클라이언트는 지정된 웹 서버에 'Х Х를 보내시오!'라는 정보를 전송합니다. 이 요구를 받은 웹 서버는 지정된 텍스트나 이미지 등의 데이터를 클라이언트 즉, 여러분의 웹 브라우저에 보내는 것입니다.
3.2 웹 서버의 역할
클라이언트의 요구에 맞춰 웹 서버가 콘텐츠를 전송하는 처리는 HTTP(Hyper Text Transfer Protocol)라는 프로토콜을 통해 이루어지고 있습니다. 프로토콜이란, 컴퓨터 간의 통신 수단(규칙)입니다.
웹 페이지의 URL은 http://... 으로 시작하는데, 이 http://에서 'HTTP 프로토콜로 통신하시오!'라고 선언하고 있는 것입니다. 웹 서버는 클라이언트에서 HTTP 프로토콜을 기반으로 한 요구가 있으면, 해당하는 문서나 이미지를 전송하는 기능을 합니다. HTTP와 같이 요청 -> 응답 -> 종료의 순서로 통신이 종료하는 프로토콜을 '스테이트리스(State Less)프로토콜'이라고 합니다.
참고로, 서버(server)의 'serve'는 '봉사' 또는 '제공'이라는 의미로, 요리를 먹을 때 사용하는 숟가락이나 포크도 '서브(serve)'라고 하며, '봉사'를 의미하는 '서비스(service)'라는 단어도 있습니다.
3.3 Apache와 웹 서버
웹 서버의 기능은 인터넷에 서버로서 접속되어 있는 컴퓨터에 설치된 응용프로그램이 담당합니다. 웹 서버 기능을 하는 응용프로그램으로는 Apache 소프트웨어 재단에서 제공하는 Apache(아파치)가 유명하며 전 세계의 수많은 웹 서버에 이용되고 있습니다. Apache는 MySQL과 마찬가지로 오픈 소스로 무료로 사용할 수가 있습니다. 전 세계의 많은 사람이 무료로 매일매일 Apache의 프로그램을 업데이트하고 있습니다. 프로그램을 수정하거나 업데이트하기 위한 프로그램을 'patch(패치)'라고 하는데, 이 패치를 모아서 개발했기 때문에 'Apache(아파치)'라는 이름이 붙여지게 되었다고 합니다.
URL The Apache HTTP Server Project
MySQL과 PHP에 가장 잘 맞는 웹 서버 응용프로그램은 Apache라고 할 수 있습니다. 여기에서는 XAMPP를 이용해서 설치하는 예를 소개하고 있으며, 웹 서버 응용프로그램에 Apache를 사용하고 있습니다.
스테이트풀(State Full) 프로토콜
HTTP는 스테이트리스 프로토콜이지만, 웹상에서 파일을 전송하는 데 이용하는 FTP(File Transfer Protocol)와 같이 접속 상태를 유지하는 프로토콜을 '스테이트풀 프로토콜'이라고 합니다.
4. 정적 화면과 동적 화면
초기의 웹 페이지는 하이퍼링크를 클릭하면 해당하는 파일이 전송되는 간단한 것이었습니다. 이런 구조의 화면을 정적 화면이라고 합니다. 웹 페이지의 정체는 HTML로 작성한 텍스트 파일입니다.
이에 비해 최근에는 동적인 웹 페이지가 많아졌습니다. 동적인 웹 페이지에서는 클라이언트로부터 보내온 데이터를 서버에서 처리하고, 그에 적합한 웹 페이지를 클라이언트 측에 표시할 수 있습니다.
이러한 '서버 측의 처리'기능을 가능하게 하는 것이 Perl이나 Java, PHP 등의 프로그램 언어 입니다.
5. 웹에서 동작하는 프로그램
웹에서 동작하느 프로그램의 구조는 크게 CGI와 스크립트가 유명합니다.
5.1 CGI
CGI(Common Geteway Interface)는 프로그램을 서버에 배치하고 웹 브라우저에서 호출이 왔을 때 실행하는 것입니다. CGI 프로그램을 만들 때에는 다양한 언어를 사용할 수 있지만, 특히 Perl이 유명합니다. Perl은 오래전부터 액세스 카운터(access counter, 웹 페이지에 접속한 횟수를 나타내는 장치)를 만드는 데 많이 사용되어 왔습니다.
5.2 스크립트
본래 스크립트는 처리를 자동으로 실행하기 위해 만들어진 간단한 프로그램을 의미합니다. 텍스트 파일 단독으로 만들거나 HTML파일 안에 기술하는 등 다양한 형태가 있습니다.
웹에서 동작하는 스크립트에 한정해서 말하자면, HTML 파일 안에 스크립트를 기술해서 필요에 따라 동작하도록 하는 것이 일반적입니다.
현재, 웹에서 이용되는 일반적인 스크립트에는 클라이언트에서 동작하는 것과 웹 서버에서 동작하는 2종류가 있습니다.
클라이언트 측 스크립트
JavaScript는 클라이언트 측에서 동작하는 스크립트입니다. 웹 서버와는 전혀 상관없이 웹 페이지를 열람하는 컴퓨터 내에서 프로그램이 실행됩니다. 즉, 클라이언트 스크립트에서 웹 서버는 클라이언트 측에 스크립트를 보내고 나면 그 후에 어떤 작업에도 관여할 수가 없습니다.
클라이언트 환경에서 동작하는 것이기 때문에 브라우저에서 일어나는 동작이나 표시를 간단하게 제어할 수 있습니다. 단, 브라우저의 종류에 따라서는 동작이 다르거나 동작하지 않을 수도 있습니다.
서버 측 스크립트
클라이언트가 아닌 웹 서버에서 실행되는 서버 측 스크립트 입니다. 클라이언트에서 명령이 전달되면 웹 서버에서 처리가 이루어지고 그 결과가 클라이언트에 전달됩니다. 클라이언트 측은 처리된 결과를 보여주기만 합니다. 일반적으로 데이터베이스 처리는 서버 측에서 이루어지기 때문에 서버 측 스크립트가 담당하는 것이 적합합니다.
6. PHP란?
여기에서는 웹 응용프로그램을 만드는 언어로 PHP를 소개하고 있습니다.
6.1 PHP란 무엇인가?
PHP는 웹 서버측에서 동작하는 서버 측 스크립트 입니다. 실행하기 위한 모듈(최소 단위의 프로그램)은 웹 서버에 있으며, 이를 스크립트 명령으로 실행합니다. 일반적으로 동작은 매우 경쾌합니다.
URL PHP : Hypertext Preprocessor
PHP의 정식 명칭은 PHP : Hypertext Proprocessor이며, 말 그대로 웹 응용프로그램을 개발하기 위한 프로그램 언어 입니다. Apache나 Microsoft에서 개발한 웹 서버 응용 프로그램인 IIS(Internet Informations Services) 등 많은 웹 서버에 대응하며, MySQL을 비롯한 많은 RDBMS을 지원하고 있습니다. 그리고 무엇보다도 스크립트를 작성하는 방법이 간단해서 친숙한 언어입니다.
전 세계의 방대한 웹 서버에서 PHP를 이용하고 있습니다. PHP는 MySQL을 사용하는 웹 응용프로그램을 제작하는 데 필요한 수많은 프로그램 언어 중 하나입니다.
6.3 여기에서 다루는 PHP
여기에서 소개하는 PHP는 MySQL을 웹 응용프로그램에서 사용하는 데 필요한 최소한의 기초 지식에 그치고 있습니다. PHP가 가진 방대한 기능을 여기에서 모두 설명하기는 어렵습니다.
그래서 여기에서는 다음 내용에 대해서만 설명하겠습니다.
■ PHP를 이용해서 14장까지 연습했던 SQL 명령을 실행하는 방법
대규모의 운용을 전제로 하는 데이터베이스 서버를 구축하거나 임대 서버를 이용하는 과정은 해당 서적에 적혀 있는 대로 따라 하면 가능한 일입니다. 하지만 MySQL에 대한 본질적인 이해가 없으면 스스로 응용할 수가 없습니다.
앞으로 소개할 예제는 매우 간단한 게시판입니다. 하지만, MySQL을 활용하는데 필요한 핵심 내용이 농축되어 있으니 기초를 다지는 데 큰 도움이 될 것입니다. 반드시, 자신 스스로 작성해서 실제로 실행해 보기 바랍니다.
2. PHP를 이용하는 과정
7. Hello ! 출력하기
7.1 Apache 동작 확인하기
사전에 Apache를 실행해 두어야 합니다. Apache를 실행하는 방법은 현재 사용하는 환경에 따라 다릅니다. 여기의 1장에서 설명한 XAMPP를 설치한 경우에는 다음을 참고하시기 바랍니다.
그럼, Apache가 동작하고 있는지 확인해 보겠습니다. 브라우저의 주소창에 다음과 같이 입력하고, Enter를 누릅니다.
http://localhost
위의 링크 에서 설명한 대로 설치하고 설정했다면, localhost에 접속하면 다음과 같은 화면이 표시됩니다. Apache 설치 파일로 설치한 경우에는 다른 화면이 표시됩니다. 또한, Apache 버전에 따라서 다른 내용이 표시될 수도 있습니다.
localhost란 프로그램이 실행되고 있는 컴퓨터 자체를 말합니다. Apache가 제대로 실행되고 있다면 클라이언트로부터 요청된 파일이 전송될 것입니다.
지금부터 만들 PHP 파일은 인터넷에 공개할 수 있는 것입니다. 하지만 일단은 웹 서버와 같은 컴퓨터에서만 이용해 보도록 하겠습니다.
localhost의 IP 주소
localhost의 IP 주소는 보통 127.0.0.1이 할당되어 있습니다. 즉, 일반적인 설정이라면 http://127.0.0.1만 입력해도 앞의 화면이 표시됩니다.
3. PHP 스크립트의 기본 작성법, 4. PHP 스크립트를 실행하는 방법
7.2 PHP를 이용해서 화면에 Hello! 출력하기
Apache가 제대로 실행 중인지 확인했다면 이번에는 PHP로 'Hello!'라고 표시해 보겠습니다. 표시되지 않거나 글자가 깨지는 등 여러 문제가 발생할 수도 있지만, 하나하나 해결해 가면서 설명하겠습니다.
PHP로 프로그램을 작성하겠습니다. 내용은 간단한 텍스트 입니다. 한국어 문자 코드가 EUC-KR로 설정되어 있다면, 메모장 같은 Windows의 텍스트 편집기를 이용할 수 있습니다.
텍스트 편집기에 프로그램 작성하기
편집기는 어떤것을 사용해도 상관없습니다. 하지만 여기에서는 다국적 문자 코드인 UTF-8을 이용할 것이기 때문에 Windows의 메모장으로 저장시 반드시 UTF-8로 인코딩을 바꿔 주시거나 서브라임 텍스트, 에디트 플러스, 브라켓 등의 텍스트 편집기를 사용하시는걸 추천드립니다. 저는 서브라임 텍스트를 사용하겠습니다.
test.php
<?php
print " Hello!"
?>
PHP 스크립트의 문법은 16장에서 설명하겠습니다. 일단 PHP 스크립트를 실행할 수 있는 환경을 만들어 놓도록 합니다.
작성한 파일을 웹 서버의 공유 폴더에 저장합니다. .php라는 확장자를 붙여 test.php라는 이름으로 저장합니다. 저장하는 위치는 환경에 따라 다를 수 있으니 주의하도록 합니다.
Apache에 의해 공개되는 폴더는 여기서 안내한 방식대로 설치했다면, c:\xampp\htdocs 폴더가 됩니다(Windows의 경우). 따라서 지금부터 작성하는 PHP 파일도 여기에 저장합니다.
Windows의 경로 입니다.
OS X의 경로 입니다.
저 경로에 test.php 라는 파일을 만듭니다.
저장 했으면 PHP 스크립트를 실행해 보겠습니다. 브라우저의 주소창에 다음과 같이 입력하면 test.php가 실행됩니다.
http://localhost/test.php
다음과 같이 'Hello !' 가 표시되면 성공입니다. 만일 그림과 같이 표시되지 않을 때에는 다음 절에서 설명하는 '실행 결과가 표시되지 않을 때 대처 방법'을 통해 문제를 해결하기 바랍니다. 문제없이 표시되었다면 해당 내용을 건너뛰고 진행해도 됩니다.
또한, 예를 들어 자신의 컴퓨터 IP 주소가 192.168.1.1이라면, 같은 네트워크상에 있는 다른 클라이언트의 브라우저에 http://192.168.1.1/test.php라고 입력하면 이와 똑같은 화면이 표시됩니다. 단, 보안 상태에 따라서는 localhost 외의 다른 컴퓨터에서는 접속하지 못할 수도 있습니다.
글자 깨짐 현상이 일어난다면
지금부터는 PHP를 이용해서 다양한 정적인 웹 페이지를 만들어 보겠습니다. 여러분이 사용하는 환경에 따라 가끔 글자가 깨지는 현상이 일어날 수 있습니다.
여기에서 다루는 예제의 문자 코드는 기본적으로 UTF-8이라는 가정하에 설명하고 있습니다. 이유는 서브라임 텍스트에서 UTF-8을 표준으로 사용하고 있기 때문입니다. 만일, 글자가 깨지는 경우 다음 페이지에 나오는 내용을 참고로 문자 코드가 UTF-8로 설정되어 있는지 확인하도록 합니다. 만일, 설정되어 있지 않다면 UTF-8로 설정합니다.
xampp 한글 설정
그리고 여기의 예제에서는 일부를 제외하고는 <META> 태그로 문자 코드를 지정하지 않습니다. Internet Explorer 6 이상이나 Chrome 최신 버전 브라우저에서는 별도로 문자 코드를 지정하지 않아도 자동으로 설정되기 때문입니다. 그러나 이외의 환경에서는 다음에 나오는 phpinfo()를 참고해서 Apache의 설정 파일 http-languages.conf를 변경하도록 합니다.
7.3 실행 결과가 표시되지 않을 때 대처 방법
'Hello !'라고 표시되지 않거나 PHP가 예상대로 동작하지 않는 일은 종종 일어납니다. 그러나 아무런 문제도 없는데 동작하지 않는 일은 없습니다. 반드시 어딘가 원인이 있습니다. 인내심을 갖고 차근차근 그 원인을 찾아보도록 합니다.
PHP가 제대로 동작하지 않으면, 주로 다음과 같은 원인일 수 있습니다.
철자 입력 오류
화면 표시에 실패한 경우, 가장 먼저 의심해야 할 것은 PHP 파일의 스크립트 중 철자 입력 오류입니다. <php?나 <php, prnt라고 잘못 입력하거나, ?>나 큰따옴표(")를 입력하지 않은 경우가 대부분입니다. 대부분 다음과 같은 오류 메시지가 표시됩니다.
이 오류 메시지는 '2번째 행에 오류가 있다.'라는 내용입니다. 메시지에 표시된 행 근처에서 오류를 확인하도록 합니다.
환경에 따라서는 오류가 발생해도 오류 메시지가 표시되지 않을 때도 있습니다.
전각 공백을 입력했을 때
프로그램 세계에서 전각 공백은 '문자'로 취급됩니다. SQL 문에서처럼 문자는 큰따옴표(")나 작은따옴표(')로 감싸야 합니다. 즉, 들여쓰기나 띄어쓰기에 전각 공백을 입력하면 오류가 발생합니다.
PHP를 사용할 수 있는 환경이 아닐 때
애초부터 PHP를 사용할 수 있는 환경이 만들어져 있는지, PHP는 설치되어 있는지 확인합니다. 뜻밖에 흔히 하는 실수입니다. 2장을 참고해서 다시 한번 설정 상태를 확인합니다.
또한, 웹 브라우저에서 화면을 표시하려면 Apache가 실행되고 있어야 합니다. XAMPP를 설치했다면, 주소창에 http://localhost를 입력해서 위에 사진중 두번째 사진(주황) 처럼 나오는지 확인합니다.
다른 폴더에 저장되어 있을 때
Apache에 의해 공개되는 폴더는 정해져 있습니다. 단, 공개되는 폴더는 환경에 따라 다릅니다. 공개 폴더에 제대로 저장했는지 다시 한번 확인합니다.
확장자가 .php가 아닐 때
공개할 PHP 파일의 확장자는 .php입니다. 다른 확장자로 되어 있지는 않은지 확인합니다. 반드시 확장자가 표시되도록 설정하고 나서 확인합니다. 텍스트 편집기를 사용하면 파일 이름이 test.php.txt로 되어 있을 수 있는데, 이때 파일의 확장자는 .txt가 됩니다.
글자가 깨져서 표시될 때
브라우저에서 글자가 깨질 때에는 먼저 브라우저의 인코딩을 변경해 보도록 합니다. 예를 들어, Internet Explorer를 사용하고 있다면 마우스 오른쪽으로 클릭하여 [인코딩]에서 변경할 수 있습니다. 여기서 [한국어]를 선택합니다.
글자 깨짐 현상이 일어나면 PHP나 Apache의 언어 설정이 잘못되었을 수 있습니다. 위의 xampp한글설정을 참고해서 바르게 설정하도록 합니다.
8. PHP 사용하기
8.1 PHP 스크립트의 작성 규칙
일단, 1줄이지만 브라우저에 문자열을 표시해 봤습니다. 그러면 PHP를 기초부터 배워 보겠습니다. 다음은 PHP 스크립트를 작성할 때 지켜야 할 규칙입니다.
■ PHP 스크립트 파일의 확장자는 .PHP
■ PHP 스크립트는 <?php로 시작해서 ?>로 끝난다.
■ 명령문의 마지막에는 쌍반점(;)을 입력한다.
■ 문자열 데이터는 큰따옴표(")나 작은따옴표(')로 감싼다.
각각 자세히 살펴보겠습니다.
PHP 스크립트 파일의 확장자는 .php
PHP 스크립트를 작성한 파일의 확장자는 .php입니다. 앞의 예에서는 파일 이름을 test.php라고 정했습니다. 설정에 따라 다른 확장자로 변경할 수도 있지만, 이 책에서는 .php로 통일하겠습니다.
PHP 스크립트는 <?php로 시작해서 ?>로 끝난다
.php로 작성된 텍스트 파일에 다음과 같이 입력합니다.
PHP 스크립트 작성법
<?php
실행할 내용 작성;
?>
<?php 부분을 시작 태그, ?> 부분을 종료 태그 라고 합니다. 즉, <?php가 있으면 '여기서부터 PHP 코드가 시작된다.'라는 의미이고, ?>가 있으면 '이제 PHP 코드를 종료한다.'라는 의미입니다.
앞의 예에서는 PHP 스크립트만으로 작성되어 있습니다. 하지만, PHP 스크립트는 HTML파일안에 작성할 수도 있습니다. HTML과 함께 작성해도 <?php와 ?>로 작성된 부분을 보면 PHP 스크립트라는 것을 알 수 있습니다.
PHP 스크립트는 HTML 코드 안에 몇번이고 사용할 수 있습니다. HTML 태그 작성에 관해서 후에 설명하겠습니다.
행의 마지막에는 쌍반점(;)을 붙인다.
행의 마지막에는 쌍반점(;)을 붙여야 합니다. 단, test.php 파일과 같이 1줄만 작성한 경우에는 쌍반점(;)을 입력하지 않아도 실행됩니다.
문자열 데이터는 큰따옴표(")나 작은따옴표(')로 감싼다.
문자열 데이터는 큰따옴표나 작은따옴표로 감쌉니다. 즉, 큰따옴표나 작은따옴표로 감싸지 않은 문자열 데이터는 허용하지 않습니다.
또한, PHP에서는 변수를 큰따옴표(")로 감쌌을 때에는 변수로서 역할을 하지만, 작은따옴표(')로 감싸면 변수가 아닌 문자열로 인식됩니다. 변수에 따옴표를 사용하는 방법은 후에 자세히 설명하겠습니다.
PHP 스크립트 작성하기
PHP 스크립트를 작성할 때, <?php와 ?> 외에도 <?와 ?> 또는 <%와 %>를 사용하는 방법이 있지만, 환경에 따라서는 동작하지 않을 수도 있습니다. 따라서 <?php ?>를 사용하지는 것이 안전합니다.
8.2 어떤 처리가 이루어지는 것일까?
test.php 파일로 print "Hello !"라고 표시되었습니다. 이 스크립트의 구조에 대해 다시 한번 복습해 보겠습니다.
php에 접속한다.
먼저, 브라우저의 주소창에 http://Х Х Х Х/test.php라고 입력하면 test.php 파일에 접속하게 됩니다. 요청을 받은 웹 서버는 test.php를 실행합니다.
웹 서버에서 처리하고 나서, 그 결과를 반환한다
앞선 예에서 실제로 동작하는 것은 print "Hello !"; 부분입니다. print는 '문자열을 표시하시오.'라는 명령입니다. 즉, 이 명령을 받은 웹 서버는 'Hello !'라는 문자를 클라이언트의 브라우저에 전송합니다. 클라이언트의 브라우저에는 'Hello !'라는 문자가 출력됩니다.
HTML 태그 추가하기
문자열을 표시할 때에도 print 명령을 사용하지만, HTML 태그도 print 명령을 사용해서 작성할 수 있습니다.
예를 들어 <BR>은 줄바꿈을 나타내는 HTML 태그입니다. 다음의 예제는 'SQL 블로그'라는 문자열 뒤에 HTML 태그 <BR>을 입력함으로써 줄바꿈을 하고, 'Hello !'를 표시하고 있습니다.
<?php
print "SQL 블로그";
print "<BR>";
print "Hello !";
?>
이 스크립트를 실행하면 브라우저에 다음과 같이 표시됩니다.
print와 echo
print와 비슷한 기능을 하는 명령으로 echo가 있습니다. 사용 방법은 같지만, print는 TRUE를 반환하고(TRUE는 1), echo는 값을 반환하지 않는다는 점이 다릅니다.
예를 들어, 다음 명령을 실행하면 브라우저에는 무엇이 표시될까요?
print_echo.php
<?php
print print "Hello";
?>
이 경우 'Hello1'이라고 표시됩니다. 이는 오른쪽의 print "Hello"가 'Hello"를 출력하고, 왼쪽의 print가 반환값 1을 출력하기 때문입니다. 이에 비해 다음 스크립트를 실행하면 오류가 발생합니다.
<?
echo echo "Hellw";
?>
아무 값도 반환하지 않는 echo는 echo 명령으로 출력할 수 없기 떄문에, echo와 echo를 연속해서 작성하면 오류가 발생합니다. 참고로, print echo "Hello";는 오류가 발생하지만, echo print "Hello"; 는 오류 없이 'Hello1'이 표시됩니다.
여기서는 print로 통일해서 사용하겠습니다.
8.3 주석 작성하기
스크립트 중간에 자신만의 메모를 작성할 수가 있습니다. 이 메모를 주석(comment)이라고 합니다. 주석 부분은 프로그램의 실행에는 아무런 영향을 주지 않기 때문에, 무엇을 입력해도 상관없습니다.
시간이 지나면 프로그램을 작성하는 자신도 그 내용을 잊어버리기 쉽습니다. 어느 부분에서 어떤 처리를 하는지, 핵심이 되는 부분에 메모를 해두면 도움이 됩니다. 또한, 제대로 동작하지 않을 때, 의심되는 부분에 주석 처리를 해서 동작을 멈추게 하면 문제를 발견하는데에도 도움이 됩니다.
주석은 다음 규칙에 따라 작성합니다.
■ 스크립트의 시작 부분에 // 또는 #을 입력하면 그 행에 작성한 내용은 아무것도 실행되지 않는다.
■ /*과 */사이에 작성한 내용은 아무것도 실행되지 않는다.
다음은 주석을 사용한 예입니다. 이 스크립트를 실행해도 이전 예에서와 마찬가지로 print "Hello !"만 실행됩니다. /나 *를 여러 번 반복해서 사용하여 주석을 알아보기 쉽게 작성할 수도 있습니다.
8.4 phpinfo() 함수
이번에는 PHP의 함수를 사용해 보겠습니다. PHP에는 아주 많은 함수가 있습니다. 문자열이나 숫자를 비롯하여 파일과 데이터베이스를 조작하거나, 네트워크 등을 다루는 수많은 함수가 있습니다.
물론, 데이터베이스를 다루는 함수도 많습니다. 이 책에 등장하는 MySQL을 대상으로 하는 함수는 물론 PostgreSQL, ODBC, SQLite 등에서 사용할 수 있는 함수도 있습니다.
함수에 대해서는 다음 장에서 자세히 설명하겠지만, 여기에서는 먼저 PHP의 환경 정보를 표시하는 phpinfo() 함수를 사용해 보겠습니다.
phpinfo() 함수를 실행하는 PHP 스크립트 입니다.
<?php
phpinfo();
?>
PHP 함수의 끝에 작성하는 괄호() 안에는 함수에 전달할 인수를 대입합니다. 또한, 인수를 대입하지 않아도 괄호는 있어야 합니다. 이 점은 MySQL의 함수와 마찬가지입니다.
이 스크립트를 info.php라는 파일 이름으로 공개 폴더에 저장합니다. 주소창에 http://localhost/info.php라고 입력하면 다음과 같이 표시됩니다.
표시된 내용을 스크롤해 보면 아래 부분에 MySQL 항목이 있습니다. 여기에서 MySQL의 버전을 비롯한 관련 폴더의 정보를 알 수 있습니다.
PHP나 MySQL이 생각대로 동작하지 않을 때에는 이 함수를 실행해서 설정을 확인해 보는 것도 도움이 됩니다. 또한, phpinfo() 함수는 XAMPP의 초기화면(http://localhost/)에서 왼쪽에 있는 phpinfo()를 선택해서 실행할 수도 있습니다.
PHP에서 시스템을 종료해보자!
PHP에는 실로 많은 함수가 있습니다. 그 중에 재미있는 함수를 하나 소개하겠습니다. 명령을 실행하는 함수에 exec()라는 것이 있습니다. exec() 함수는 인수에 설정된 명령을 실행합니다. 즉, 명령 프롬프트나 터미널에서 입력하는 명령을 대신하게 됩니다(단, 모든 명령이 실행되지는 않습니다).
Windwos XP 이상에서 시스템 종료는 SHUTDOWN -s입니다. 즉, exec("SHUTDOWN -s")라는 PHP 스크립트를 작성하고 실행하면 1분 후에 시스템이 종료됩니다. 종료하기까지의 시간을 설정하려면 SHUTDOWN -s -t 10(10초 후에 종료)이라고 작성하면 됩니다. 다음 예제의 PHP 스크립트를 localhost에서 실행하면 10초 후에 자신의 컴퓨터의 시스템이 종료됩니다.
<?php
exec("SHUTDOWN -s -t 10")
?>
또한, PHP는 서버 측에서 실행되고 있습니다. 즉, SHUTDOWN되는 시스템은 서버 측입니다.
PHP 예제에 글자 깨짐 현상이 발생한다면
체크!
★ 웹 서버의 동작을 이해하고 있다.
★ PHP 스크립트를 작성하는 기본적인 규칙을 알고 있다.
★ PHP 스크립트를 실행할 수 있다.
★ 문자열을 출력하는 PHP 스크립트를 작성할 수 있다.
'MySQL & PHP 학습 > 정리 그리고 체크!' 카테고리의 다른 글
[MySQL & PHP] 17장 PHP 스크립트와 HTML (5) | 2016.03.06 |
---|---|
[MySQL & PHP] 16장 PHP의 기초 지식 (4) | 2016.03.01 |
[MySQL & PHP] 14장 파일 사용하기 (0) | 2016.02.13 |
[MySQL & PHP] 13장 트랜잭션 활용하기 (8) | 2016.02.04 |
[MySQL & PHP] 12장 저장 프로시저 활용하기 (13) | 2016.02.03 |