mysql mysqli 다른점


안녕하세요. 고코더 입니다. 



두 개의 함수가 다른 점을 필요한 내용만 정리 해보겠습니다.


1. php 5 이상에서는 mysqli


mysql 함수는 5 이하에서 사용하던 방식이었습니다.
(5부터는 확장하면 사용이 가능합니다.)
mysqli 함수는 현재 최신 버전 7에서 기본 
사용 가능합니다.

▼ connect 기능 중심으로 문서를 비교 해보겠습니다.
기존의 mysql_connect는 php 4와 5 버전이라고 나와 있습니다. 오랫동안 함께 해온 mysql 함수입니다.


▼하지만 mysqli는 php 5와 7을 쓰라고 명시 해났습니다.
그리고 7에서는 mysql을 쓸 수 없습니다.


결론적으론 7부터는 mysqli 만 사용이 가능합니다.
혹시 php5 버전이라면 mysqli로 변경하시길 추천드립니다.


2. 디폴터 커넥션 허용되지 않음


가장 많이 쓰는 _query 함수를 비교해보겠습니다.

▼ 기존의 query함수는 연결 변수를 받지 않아도 사용이 가능하였습니다.


▼mysqli 부터는 link 값을 받게 되었습니다. 우리가 자연스럽게 사용하던 디폴트 커넥션 기능이 끊겼습니다.
연결시에 반환 된 값을 파라미터에 담아줘야 합니다.

파라미터 순서도 변경 되어서 연결 부분은 수정해줘야 합니다. 헷갈려서 쓰지 말라는 PHP의 배려입니다. 



mysql의 버전 대비와 보안 향상을 위한 조치인 것으로 보입니다. 그래도 덕분에 속도 면에서는 강력하게 향상되었습니다

PHP7에서 많은 변화가 이루어졌고 그중에 대표적인 사례가 mysql, mysqli 의 차이가 아닐까 싶습니다.

기존 mysql 함수로 만들어진 DB 헬퍼 소스를 못쓰게 된 게 많으니 버전 업을 생각하신 분들은 mysqli로 수정 개발을 고민을 해보시는게 좋을거 같습니다.


마무리

발전은 좋은데 변화가 많네요.


댓글을 달아 주세요



PHP 무작위로 숫자를 추출 


안녕하세요. 고코더 입니다.

PHP에서 랜덤으로 숫자를 무작위로 뽑는 방법을 배워 보려고 합니다.
친절한 php는 배열로 열심히 담아 놓은 숫자를
원하는 만큼 숫자를 랜덤으로 뽑아줍니다.

▼바로 array_rand() 함수 입니다.




▼사용법은 간단합니다.
array_rand(
    1번째 인수 : 배열의 숫자를 받습니다. 무작위로 뽑히기 원하는 숫자입니다.
    2번째 인수 : 몇 개의 숫자를 뽑을지, 2개 이상이면 배열로 결과 값을 리턴 합니다.
)

▼간단하게 예제를 만들어 봤습니다.


▼쉽게 랜덤 숫자를 만들어 낼 수 있습니다.


간단하고 직관적으로 사용할 수 있는
랜덤 함수 였습니다.


마무리

이 많은 함수 다 만드느라 힘들었겠네요


댓글을 달아 주세요



워드프레스 서버에 설치


안녕하세요. 고코더 입니다.

이제 첫 걸음을 시작해보려고 합니다. 워드프레스는 프로그램이며 
하나의 웹사이트 입니다. 능력 좋은 SI들이 홈페이지를 찍어내는 툴을 만들어 빠르게 개발 하는 걸 본 적이 있을 것 입니다.

워드프레스는 그 홈페이지 제작 툴 사이트의 정점이라고 생각하면 됩니다.
그래서 설치라고 하면 곧 다운로드 후 PHP로 구성된 하나의 홈페이지를 
서버에 업로드 하는거 라고 생각 하시면 됩니다.

▼ 저는 최소 요구 사양인  PHP 5.6 에서 설치를 하겠습니다.
현재 워드프레스는 PHP7.2 버전까지 사용 가능합니다.


▼ 해당 URL로 접근합니다. 한국 워드 프레스 사이트입니다.
▼ 그리고 최신 버전을 다운로드 받아주세요.
설치 이후 업데이트가 가능하기에 구 버전을 설치해도 무방 합니다.


▼ 압축 파일을 열어보시면 내용만 봐도 많이 보던 홈페이지 폴더 구조 입니다.
놀라운 기능이 이 1500개 파일에 모두 들어가 있다니 신기합니다.


▼자신의 서버에 파일을 업로드 합니다. 루트에 복사하셔야 합니다. 루트에 index.php가 위치하게 설치하면 됩니다.



▼이제 업로드가 끝났다만 아래처럼 접속을 합니다.
저는 호스팅이기에 도메인이 있고 로컬 에서 학습중인 분은 localhost로 접속하시면 되겠네요.


▼ 혹시 아래와 같이 접속이 안된다면 파일 업로드가 실패 한 게 있을 것입니다.
이때는 다시 업로드 하시거나 실패한 파일만 재 시도 해주세요. 파일 개수가 많아 그런지 자주 겪는 문제입니다.


▼ 그리고 각자의 데이터 베이스에 접속합니다.
저는 호스팅 서비스 이기에  phpMyAdmin으로 접속했습니다.


▼ 그리고 워드 프레스를 설치할 데이터 베이스를 만듭니다. 저는 호스팅이라 지정된 이름만 가능하네요


▼ 해당 화면에서 정보를 기록합니다.
가장 중요한 건 데이터 베이스 이름이랑
DB 로그인 계정을 기록해야 합니다.


▼이젠 설치 실행하기를 클릭합니다.


▼ 비번은 기본으로 정해주는거 사용하지 마세요.
외우기 어렵네요. 나머지 정보도 기록해주세요.
나중에 수정 가능한 정보니 고심하지 않으셔도 됩니다.


▼ 설치가 2초 만에 완료 되었습니다.


▼ 그리고 자신의 도메인 인덱스 페이지로 접속을 해보면
기본 스킨이 잘 뜨고 있는걸 확인 할 수 있습니다.



이것으로 워드프레스 설치가 모두 완료 되었습니다.
함께 따라하면서 WP가 무엇인지 감을 좀 잡았을거 같네요.

훌륭하게 만든 사이트 하나가 세계를 움직이는 서비스가 되었습니다.
지금 시작하는 개발자가 계시면 한번 제 2의 워드프레스 개발을 꿈꾸어 보시길 바랍니다.


마무리


잘 만드는 것 만큼 필요한걸 만드는게 중요합니다.



댓글을 달아 주세요



정의되지 않은 상수 오류


안녕하세요. 고코더 입니다.

PHP는 자유로운 언어입니다. 
그런데 5.3 이하일땐 더 프리 했습니다.



그래서 왠만한 유효성은 오류 없이 넘기고는 했죠.
변수도 바로 꺼내써도 되고 일반 언어에서는 통제 할 만한 규칙은 무시 가능했습니다.
그런데 5.4에 들어오면서 조금씩 규격을 통제하기 시작했습니다.

그중에 대표적인게 배열속에 상수 값을 따옴표로 지정하지 않으면 
이런 Notice 오류가 나게 되었습니다.


Notice : Use of undefined constant [변수명] - 소스위치


물런 Notice 오류라 무시해도 되지만
그래도 수정하시는게 좋습니다. (당연히)

▼아래 코드를 PHP 상에서 확인해보겠습니다.
1
2
3
4
5
6
7
<?php
$data['name'= "gocoder";
$data['age'= "15?";
 
echo "name : ".$data["name"]."<Br>";
echo "age : "$data[age];
?>
cs
▼name은 오류가 없는데 age를 15살로 해서 그런지, 따옴표을 없이 써서 그런지
"Use of undefined constant" 오류가 났습니다.



이제 배열을 지칭할때는 이제 따옴표를 감싸서 
사용하시길 바랍니다. 
예전에 개발된 소스는 대부분 감싸 있지 않더군요



마무리

서버사이드 언어중 가장 오래 지속 발전 가능한 언어는 PHP가 아닐까요?


댓글을 달아 주세요



에러 메세지 표시하기 


안녕하세요. 고코더 입니다.

오늘은 기초적인 PHP의 오류 메세지를 화면에 출력할 수 있는 방법을 배워보겠습니다.
여러가지 언어를 하다보니 헷갈려서 제가 참고 하려 씁니다.



php는 다양하고 우수한 옵션이 많습니다.
다른 언어 같은 경우는 was나 서버의 설정으로 오류 메세지를 확인합니다. 

php에서도 서버 설정을 통해 확인 가능하지만
더욱 간단히 소스 삽입으로 오류 메세지를 웹 프론트에 출력이 가능합니다.

▼ 아래 소스를 웹에서 확인해보세요
1
2
3
4
5
6
7
8
9
<?php
 
ini_set('display_errors'1); 
ini_set('error_reporting', E_ALL);
 
echo "error "
echo "error 2"
 
?>

cs

▼ 네 당연히 오류가 표시 됩니다. 아래처럼 일부로 세미콜론(;)을 붙이지 않았습니다.


▼해당 코드는 오류를 화면에 보이겠냐는 옵션입니다.
1이면 화면에 출력합니다. 1이 아니면 의미가 없습니다.
1
<? ini_set('display_errors'1); ?>
cs

▼ 해당 옵션은 에러를 보여주는 수준입니다. 보통은
E_ALL로 모든 에러를 봅니다. 
1
<? ini_set('error_reporting', E_ALL); ?>
cs

▼ 나머지 옵션은  해당 URL에서 확인 할 수 있습니다.
필요에 따라 사용 하시길 바랍니다. (다른 옵션을 사용해본적이 없네요)





마무리


오류 좀 그만 ..


댓글을 달아 주세요



워드프레스를 사용하기 전에


안녕하세요. 고코더 입니다.

워드프레스란워드프레스란


워드프레스에 대한 문의가 많이 들어와 오늘부터 강의를 시작하려고 합니다.
강의에 앞서 함께 고민 해볼 필요가 있습니다.

워드프레스로(https://ko.wordpress.com/) 찍어내는 홈페이지가 가치가 있는가?

워맷 멜런웨그는 미국의 프로그래머 입니다.
오픈 소스 기반의 블로그형 소프트웨어인 워드프로세스를 만들었습니다.

86년 생의 잘생긴 이 청년은 세계에서 가장 영향력 있는 IT 인물로도 손 꼽히고 있습니다.
2014년 한국에 내한 했을때는 31살 뿐이 안되었네요.
현재 전세계에서 재택근무로 업무를 처리하는 오토매틱의 CEO이기도 합니다.
마크주커버그보다 도 2살이 어립니다. 



워드프레스는 PHP에서 다양하게 발전 중이었던 블로그형 웹사이트를
천하 통일 하였습니다. 전세계 30프로의 홈페이지가 이를 통해 개발되었다고 하는데
제 생각에는 더 높을거 같네요.
기존의 다양한 PHP 블로그 도구들은 완성도면에서 신뢰 하기 힘든게 사실입니다.
한국에도 많은 보드들이 탄생하고 사라진 것도 기술적 한계일 것입니다. 


하지만 워드 프레스는 달랐습니다. 시작과 동시에 전세계 사용자에게 사랑 받았고
신뢰할만한 시스템 확장 가능한 플로그인등이 우릴 사로 잡았습니다.

물런 워드프레스를 공격하는 악성 프로그램들이 발전하였지만
훌륭하게 이를 방어하고 있습니다.

결론은 워드프레스는 홈페이지를 만들기 좋은 하나의 "언어"라고 할 수 있습니다.

마우스로 홈페이지를 개발 할 수 있는 이 워드프레스를 과연 개발자가 알아야 할까?
라는 질문을 하게 됩니다. 

서버언어의 시대는 막이 내리고 있습니다 이미 Nodejs도 프론트엔드에서 모든걸 해결 하기 위해 나왔고
자바스크립트는 서버언어의 기본 뼈대만을 이용해 사이트를 개발 하고 있습니다.

워드프레스가 훌륭한 기본 뼈대를 제공하고 있고 이에 각 용도에 맞게 커스텀마이징을 
하면 최적의 시간으로 훌륭한 사이트를 제작 할 수 있습니다.


옛날처럼 게시판을 잘만드는 개발자가아니라 
게시판을 잘 이용하여 사이트를 구축하는 개발자의 시대입니다. 

모듈을 만들 줄 알아야 한다고 배워왔다면 
이젠 기존의 모듈을 이용해 활용해 재생산 할 줄도 알아야 하는 시대입니다.

그런 관점에서 워드프레스는 개발자도 공부하기 충분한 도구이며 언어라고 생각 됩니다.

이제 고코더와 함께 사이트를 함께 구축하면서 워드프레스가 바꿔 놓은 
홈페이지 제작의 시대를 경험해보시길 바랍니다.



마무리

 
그런데 전 마우스 개발이 더 어렵더라고요


댓글을 달아 주세요


오토셋 으로 PHP 학습 환경 구축하기 


안녕하세요. 고코더입니다. 

제 강의에서 다양한 APM 설치 프로그램을 다루었습니다.

개발 공부를 하던중 요즘 많이 사용하는 APM을 또 하나 알아냈습니다.
오토셋이라는 프로그램입니다. 



이런 컴퓨터의 몇개의 서버가 있는 지 모르겟네요.

그래도 필요한것은 다양하니 이번엔 오토셋을 다뤄 보겠습니다. 
회사,개인 어디든 무료로 사용할 수 있는 프리웨어 입니다.

▼ 홈페이지 입니다. 

▼ php 7 부터 5.2 까지 버전을 제공합니다.
저는 5.6버전을 설치하려고 합니다.


▼한국산 이라 한글로 설치를 안내합니다.


▼다음을 누르고


▼다음을 누르고


▼설치 위치를 정하고 다음



▼Full installation 으로 설치해주세요


▼설치를 눌러주세요


▼ 설치가 완료되었습니다. 실행해보겠습니다.


▼ localhost를 접속해봅니다.
가장 친절한 첫페이지입니다. 왼쪽맨위에 PHPinfo()
를 눌러주세요


▼ 5.6 버전이 설치되었습니다. 
갖가지 버전의 APM들이 가득하네요 



기능 리뷰는 사용 후에 남기겠습니다.
설치 후 느낌은 지금 까지 나온 프로그램의 장점만 모아둔 기분이네요


마무리

좋은 한국산 APM


댓글을 달아 주세요



Thread Safety , NON Thread Safety 확인방법


안녕하세요 고코더 입니다.

요즘은 질문을 받는걸 블로그 글로 쓰는 경우가 많습니다.
후배가 현재 서버의 "TS", "NTS"를 어떻게 알 수 있냐고 묻길래
너무나 간단한 답변이라 말을 해주었습니다.

인터넷에 치면 간단하게 나올텐데라고 생각이 들어 직접 찾아보니
이론 설명만 있고 서버의 Thread  방식을 알아내는 설명 글이 없네요.

정보의 바다지만 빈틈도 많은 오션이군요.
작은 빈틈부분은 고코더도 메꿔봐야겠네요

▼ 우선 현재 확인하고 싶은 서버에서 아래처럼 코드를 입력합니다.
현재 서버의 설정을 확인할 수 있는 방법입니다.
1
2
3
<?php
    phpinfo();
?>
cs



▼ info 화면에서 "Thread Safety"를 검색해보세요 



▼ disabled 는 NTS(NON Thread Safety)


▼ enabled 는 TS(Thread Safety)


이렇게 구별 할 수 있습니다.



TS, NTS 차이

NTS는 
     - 단일 스레드
     - FAST CGI 호환을 위해
TS는
     - 다중 스레드
     - SAPI와 PHP 호환을 위해

뭐 결론은 IIS CGI 때문에 NTS가 나온 것뿐이죠.

▼ 참고 URL




마무리

▼ 선택의 기로에서
어떤걸 다운해야 할지 이제 느낌이 오시죠?



댓글을 달아 주세요



PHP에 카우치베이스 확장모듈 등록하기 


안녕하세요. 고코더 입니다.


noSQL인 카우치 베이스를 PHP에서 DLL로 확장을 하는 방법을 알아보려고 합니다.
한국에서는 확실히 mongoDB 말고는 레퍼런스가 많이 없습니다.
사용도가 낮아서 그런거겠죠.

그래도 학습을 위해 혹은 로컬 셋팅을 위해 윈도우 서버에서
카우치 베이스를 확장 하는 방법을 배워 보겠습니다. 

▼해당 URL로 이동하여 원하는 버전의 couchbase DLL를 다운로드 합니다.



▼압축파일 루트에는 두개의 DLL 파일이 있습니다.


1. libcouchbase.dll 
해당 파일을 아래 폴더로 복사를 해주세요
관리자 계정으로 복사만 해주시면 됩니다. 
C:\Windows\SysWOW64
C:\Windows\System32


2. php_couchbase.dll
자신의 PHP설치 폴더로 이동하셔아 합니다. 셋팅에 따라 폴더는 다 다릅니다.
본인의 PHP 폴더 위치를 찾아서 ext 확장 모듈 폴더에 복사해주세요
- APMSETUP7일 경우
C:\APM_Setup\Server\PHP5\ext

- XAMPP일 경우
C:\xampp\php\ext

- AutoSet일 경우
C:\AutoSet9\server\bin\ext

- PHP를 따로 설치했을 경우
C:\PHP\ext

3.PHP.ini 수정
이번에는 PHP.ini 를 수정해야 합니다.
2번에서 말씀드린 폴더 위치 기준으로 찾아보시면 있습니다.
(가장 좋은 방법은 폴더 안에서  php.ini 검색을 해보세요 

그리고 아래처럼 파일에 코드를 삽입 해주세요
extension=php_couchbase.dll
; select default serializer
couchbase.serializer = json 

▼제 PHP.ini 캡쳐 화면입니다.
couchbase.serializer 를 json 형태로 사용하시려면 주석 없이 입력해주세요


▼그리고 phpinfo()를 실행시켜 카우치베이스가 추가되었는지 확인하시면 됩니다.



간단하지만 설정할때 정보가 많이 없어서 고생했네요


마무리

여러분은 헤매지 마시길





댓글을 달아 주세요



APM셋업 5.2.x -> 5.3.x 업그레이드


안녕하세요. 고코더입니다.



APMSETUP7 설치는 아래 강의를 선행 해주세요.


이전 APMSETUP7 설치 강의 후에 이런 질문이 들어왔습니다.

Q. 5.3 버전 프로그램은 없나요?
A. "네 없습니다."

지난번 강의처럼 APMSETUP은 이제 새로운 버전이 없습니다.
몇몇 능력자 분들이 버전 업을 해서 배포 하고 있지만
조금은 불안해 보입니다.

기업에서 운영중인 PHP 버전은 5.3버전이 가장 많은거 같습니다.
요즘은 성능때메 7로 많이 옮기고 계셔서 또 모르겠네요

대중화 된 버전인데 하필 5.2까지 빌드업이 되어 있어서 난감하신 분들이 있을거 같습니다.

그래서 오늘은 5.3으로 업그레이드 하는 방법을 알아보겠습니다.

▼해당 페이지에 접속하셔서


php-5.3.19-Win32-VC9-x86.zip 을 검색하여 다운 받으시기 바랍니다.

▼ 그리고 APM_SETUP 폴더에 Server 폴더에 PHP5로 이동합니다. 
C:\APM_Setup\Server\PHP5



▼ 기존의 PHP5폴더는 삭제 아니면 폴더명을 PHP5_backup 같은 형식으로 백업해주세요.


▼ 그리고 새로운 폴더로 PHP5 폴더안에


▼위에서 다운로드 한 프로그램을 압축 해제 후 
복사 붙혀넣습니다. 완성 된 PHP5 폴더 모습입니다. 5.3.19 버전 파일로 채워져 있습니다.


▼그리고 phpinfo()를 실행시킨 결과
APMSETUP도 이제 5.3 사용이 가능하게 되었습니다.





마무리

APMSETUP 아직도 많이 사용 하시네요.


댓글을 달아 주세요