'웹관련'에 해당되는 글 13건

  1. 2015.02.18 connect errorHandler
  2. 2015.02.18 connect query
  3. 2014.12.23 br 태그.
  4. 2014.03.31 php mysql 지원 함수들
  5. 2014.03.31 phpmyadmin 미리 작성된 sql 파일 import 하기
  6. 2014.03.31 데이터베이스 테이블 설계(테이블 수정)
  7. 2014.03.31 데이터베이스 테이블 설계(테이블 생성 및 구조 보기)
  8. 2014.03.31 관계형 데이터베이스의 구조
  9. 2013.12.31 주소체계와 데이터 정렬
  10. 2013.12.31 프로토콜

connect errorHandler

|

npm install errorhandler


var errorhandler = require('errorhandler');



Examples



var connect = require('connect')
var errorhandler = require('errorhandler')

var app = connect()

if (process.env.NODE_ENV === 'development') {
  // only use in development
  app.use(errorhandler())
}








stack 웹 페이지에 오류 메시지와 스택 추적
message 웹 페이지에 예외 메시지 출력
dump 콘솔 화면에 예외 메시지와 스택 추적을 출력


'웹관련 > 자바스크립트' 카테고리의 다른 글

connect errorHandler  (0) 2015.02.18
connect query  (0) 2015.02.18
자바스크립트 string format  (0) 2013.10.09
Trackback 0 And Comment 0

connect query

|

connect.query() 에러..


connect-query 설치.


npm install connect-query --save


var connect = require('connect');
var query = require('connect-query');
var app = connect();
 
app.use(query());
 
app.listen(300);


'웹관련 > 자바스크립트' 카테고리의 다른 글

connect errorHandler  (0) 2015.02.18
connect query  (0) 2015.02.18
자바스크립트 string format  (0) 2013.10.09
Trackback 0 And Comment 0

br 태그.

|

xhtml 에서는 <br /> 이렇게 써주고 html5에서는 <br> 이렇게 써준다.


'웹관련' 카테고리의 다른 글

br 태그.  (0) 2014.12.23
주소체계와 데이터 정렬  (0) 2013.12.31
프로토콜  (0) 2013.12.31
윈도우 소켓  (0) 2013.12.31
소켓  (0) 2013.12.31
Trackback 0 And Comment 0

php mysql 지원 함수들

|

http://php.net 에서 다음의 함수들을 찾아보실 수 있고, 자세한 설명과 샘플을

확인하실 수 있습니다. :)

 

mysql_affected_rows -- 최근 MySQL 작업으로 처리된 행(row) 개수를 얻음
mysql_change_user --  현 접속에서 로그인된 사용자를 변경
mysql_client_encoding -- Returns the name of the character set
mysql_close -- MySQL 접속을 닫음
mysql_connect -- MySQL 서버에 접속
mysql_create_db -- MySQL 데이터베이스를 생성
mysql_data_seek -- 내부적인 결과 포인터를 이동
mysql_db_name -- 데이터 결과를 얻음
mysql_db_query -- MySQL 질의문을 전송
mysql_drop_db -- MySQL 데이터베이스를 삭제
mysql_errno -- 최근 MySQL 작업으로 발생한 에러 번호를 반환
mysql_error -- 최근 실행된 MySQL 작업으로 발생한 에러 메시지를 반환
mysql_escape_string --  Escapes a string for use in a mysql_query.
mysql_fetch_array --  결과를 필드이름 색인 또는 숫자 색인으로 된 배열로 반환
mysql_fetch_assoc --  결과를 필드이름 색인으로 된 배열로 반환
mysql_fetch_field --  결과로부터 열 정보를 얻어서 객체로 반환
mysql_fetch_lengths --  결과로부터 각 출력의 길이를 반환
mysql_fetch_object -- 행(row)의 결과를 객체로 얻음
mysql_fetch_row -- 결과를 숫자색인으로 된 배열로 반환
mysql_field_flags --  결과로부터 특정 필드(field)의 상태정보(flag)를 반환
mysql_field_len --  특정 필드의 길이를 반환
mysql_field_name --  결과로부터 특정 필드 이름을 반환
mysql_field_seek --  특정 필드의 오프셋(offset)으로 위치(pointer)를 이동
mysql_field_table --  특정 필드가 속한 테이블 이름을 얻음
mysql_field_type --  결과로부터 특정 필드의 데이터 형(type) 정보를 반환
mysql_free_result -- Free result memory
mysql_get_client_info -- Get MySQL client info
mysql_get_host_info -- Get MySQL host info
mysql_get_proto_info -- Get MySQL protocol info
mysql_get_server_info -- Get MySQL server info
mysql_info --  Get information about the most recent query
mysql_insert_id --  최근 INSERT 작업으로부터 생성된 identifier 값을 반환
mysql_list_dbs --  MySQL 서버에 있는 데이터베이스 이름을 반환
mysql_list_fields -- MySQL 결과의 필드 리스트로 반환
mysql_list_processes -- List MySQL processes
mysql_list_tables -- MySQL 데이터베이스에 있는 테이블 목록을 반환
mysql_num_fields -- 결과로부터 필드 개수를 반환
mysql_num_rows -- 결과로부터 열 개수를 반환
mysql_pconnect --  MySQL 서버와 영구적인 데이터베이스 접속
mysql_ping -- Ping a server connection or reconnect if there is no connection
mysql_query -- Send a MySQL query
mysql_real_escape_string --  Escapes special characters in a string for use in a SQL statement, taking into account the current charset of the connection.
mysql_result -- 결과 데이터를 반환
mysql_select_db -- MySQL 데이터베이스를 선택
mysql_stat -- Get current system status
mysql_tablename -- 필드의 테이블이름을 얻음
mysql_thread_id -- Return the current thread ID
mysql_unbuffered_query --  Send an SQL query to MySQL, without fetching and buffering the result rows


아래는 사용 샘플입니다.

 

<?php
/* 접속하고, 데이터베이스를 선택 */
$link mysql_connect("mysql_host""mysql_user""mysql_password"
)
   or die(
"접속할 수 없습니다 : " mysql_error
());
echo 
"접속 성공"
;
mysql_select_db("my_database") or die("데이터베이스를 선택할 수 없습니다."
);

/* SQL 쿼리 실행하기 */
$query "SELECT * FROM my_table"
;
$result mysql_query($query) or die("쿼리 실패 : " mysql_error
());

/* HTML로 결과 출력하기 */
echo "<table>n"
;
while (
$line mysql_fetch_array($resultMYSQL_ASSOC
)) {
   echo 
"t<tr>n"
;
   foreach (
$line as $col_value
) {
       echo 
"tt<td>$col_value</td>n"
;
   }
   echo 
"t</tr>n"
;
}
echo 
"</table>n"
;

/* 결과셋 해제하기 */
mysql_free_result($result
);

/* 접속 종료 */
mysql_close($link
);
?>


Trackback 0 And Comment 0

phpmyadmin 미리 작성된 sql 파일 import 하기

|


friend2.sql






sql 파일을 미리 만들고




phpmyadmin의 임포트 메뉴로 가서 파일을선택하고 아래의 go를 누르면 sql 파일 명령이 실행되서 테이블이 생성된다.

Trackback 0 And Comment 0

데이터베이스 테이블 설계(테이블 수정)

|
새로운 필드 추가 명령

alter table 테이블명 add 새로운 필드명 필드 타입 [first 또는 after 필드명];

예) 
앞서 만든 friend 테이블에 나이 필드를 (정수형)을 추가하려면 다음과 같이 입력한다.



만약 tel 필드 다음에 휴대폰 번호를 저장하는 hp char(20)인 필드를 추가하려면 다음과 같이 입력한다.

alter table friend add hp char(20) after tel;


필드 삭제 명령


alter table 테이블명 drop 삭제할 필드명1, 삭제할 필드명2;



friend 테이블의 email 필드와 age 필드를 삭제하려면 다음과 같이 입력한다.


alter table friend drop email;

alter table friend drop age;




필드 수정 명령


alter table 테이블명 change 이전 필드명 새로운 필드명 필드 타입;


예)

tel char(20)을 phone int로 변경하고 싶으면


alter table friend chage tel phone int;



필드 타입 수정 명령

alter table 테이블명 modify 필드명 새로운 타입;


name 필드의 타입을 int로 변경하려면


alter table friend modify name int;



데이터 베이스 테이블명 수정 명령

alter table 이전 테이블명 rename 새로운 테이블명;


테이블명을 friend -> student 로 변경하고 싶으면


alter table friend rename student;



데이터베이스 테이블 삭제 명령

drop table 테이블명;


friend 테이블을 삭제하고 싶으면


drop table friend;





Trackback 0 And Comment 0

데이터베이스 테이블 설계(테이블 생성 및 구조 보기)

|

테이블을 직접 만들어보기 전에 간단히 테이블을 설계해보자

간단한 주소록 테이블을 만들어보자.

주소록에는 이름, 주소, 전화번호 등이 들어갈수 있다.



필드명 

타입

설명 

num 

int 

일련번호

name

char(10) 

이름 

address

varchar(80) 또는 char(80) 

주소

tel

char(20) 

전화번호 

email

char(20) 

이메일 주소 


num -> 레코드에 각각 번호를 매기기 위해서 생성했다.

name -> 이름을 저장

address -> 주소 저장 vchar 나 char 사용


vchar 와 char 의 차이는 가변적인 공간인지 아닌지의 차이이다.

vchar 같은 경우에는 입력된 값과 같은 바이트수만 차지하게 된다.

만약 vchar로 80바이트를 선언한 필드의 레코드가 5바이트만 차지하면 5바이트만 차지하게 변한다는 의미이다.


메모리 효율 면에선 vchar 가 우수하고, 속도면에서는 char 가 우수하다.


테이블 생성명령


create table 테이블명 {

필드명1 타입,

필드명2 타입,

.........

PRIMARY KEY(필드명)


};






not null -> not null은 반드시 값을 입력해야 하는 필수 항목을 의미한다.

primary key -> 기본키는 저장된 레코드를 다른 레코드와 구별시켜주는 필드를 의미한다. 필드값은 서로 중복되지 않은 유일한 값을 갖는다.

한 테이블에는 한개의 기본키만 존재하게 된다.



데이터 베이스에 있는 테이블 보기


show tables;



데이터베이스 테이블의 구조 확인하기


desc 테이블명;








Trackback 0 And Comment 0

관계형 데이터베이스의 구조

|

관계형 데이터 베이스이ㅡ 기본 구성 요소 세가지에는

테이블, 필드, 레코드가 있다.




일련번호 

이름 

학번 

수강과목 

성적 

홍길동 

20080835 

모바일게임 

4.3 

정광무

20080335 

게임그래픽 

4.5 

3

허지호

20080336 

게임기획 

4.5 


일련번호, 이름, 학번, 수강과목, 성적 -> 을 나타내는 각각의 열을 필드라고 부른다.

각필드에 해당되는 첫번째 학생의 데이터는 1, 홍길동, 20080835, 등등 인데 이렇게 각 행에 해당되는 데이터를 레코드라고 한다.

즉 레코드 하나에 한 학생의 데이터가 저장된다.

그리고 이 전체의 표가 하나의 테이블이 된다




Trackback 0 And Comment 0

주소체계와 데이터 정렬

|

ip (Internet Protocol)

-인터넷 상에서 데이터를 송수신할 목적으로 컴퓨터에 부여하는 값

Port번호
프로그램상에서 생성되는 소켓을 구분하기 위해서 소켓에 부여되는 번호


port -> 16비트 0~ 65535
0~1023은 이미 용도가 결정되 있음
80번은 인터넷포트번호임



'웹관련' 카테고리의 다른 글

br 태그.  (0) 2014.12.23
주소체계와 데이터 정렬  (0) 2013.12.31
프로토콜  (0) 2013.12.31
윈도우 소켓  (0) 2013.12.31
소켓  (0) 2013.12.31
Trackback 0 And Comment 0

프로토콜

|

프로토콜

대화에 필요한 통신규약
프로토콜은 약속이다.

소켓 생성함수

#include <sys/socket.h>
int socket(int domain, int type, int protocol);
->성공시 파일 디스크립터, 실패시 -1 반환

domain 소켓이 사용할 프로토콜 체계 정보전달
type 소켓의 데이터 전송방식에 대한 정보 전달
protocol 두 컴퓨터간 통신에 사용되는 프로토콜 전달

첫번째 인자 
프로토콜의 체계 종류
  1. PF_INET           IPV4 인터넷 프로토콜 체계
  2. PF_INET6         IPV6 인터넷 프로토콜 체계
  3. PF_LOCAL       로컬 통신을 위한 UNIX 프로토콜 체계
  4. PF_PACKET     Low Level 소켓을 위한 프로토콜 체계
  5. PF_IPX              IPX 노벨 프로토콜 체계

1번만 알면 됨
나머지는 잘 사용 안됨

두번째 인자
소켓의 데이터 전송방식
 PF_INET에는 둘이상 전송방식이 있음
대표적 두가지 전송 타입
-연결 지향형 소켓타입(SOCK_STREAM) TCP
-비연결 지향형 소켓 타입(SOCK_DGRAM) UDP


tcp 특성 예제



#include <stdio.h>
#include <stdlib.h>
#include <WinSock2.h>
void ErrorHandling(char * message);

int main(int argc, char * argv[])
{
WSADATA wsaData;
SOCKET hSocket;
SOCKADDR_IN servAddr;

char message[30];
int strLen = 0;
int idx=0, readLen=0;

if(argc != 3)
{
printf("Usage : %s <IP> <port>\n",argv[0]);
exit(0);
}

if(WSAStartup(MAKEWORD(2,2), &wsaData) != 0)
{
ErrorHandling("WSAStartup() error!");
}

hSocket = socket(PF_INET, SOCK_STREAM, 0);
if(hSocket == INVALID_SOCKET)
{
ErrorHandling("socket() error!");
}

memset(&servAddr, 0, sizeof(servAddr));
servAddr.sin_family = AF_INET;
servAddr.sin_addr.s_addr = inet_addr(argv[1]); //ip
servAddr.sin_port = htons(atoi(argv[2])); //port

if(connect(hSocket, (SOCKADDR *)&servAddr,sizeof(servAddr)) == SOCKET_ERROR)
{
ErrorHandling("connect() error!");
}
while(readLen=recv(hSocket, &message[idx++], 1, 0))
{
if(readLen==-1)
{
ErrorHandling("read() error!");
}

strLen += readLen;
}

printf("Message from server : %s \n", message);
printf("Function read call count :%d \n", strLen);
closesocket(hSocket);
WSACleanup();

return 0;
}

void ErrorHandling(char * message)
{
fputs(message,stderr);
fputc('\n', stderr);
exit(1);
}


'웹관련' 카테고리의 다른 글

br 태그.  (0) 2014.12.23
주소체계와 데이터 정렬  (0) 2013.12.31
프로토콜  (0) 2013.12.31
윈도우 소켓  (0) 2013.12.31
소켓  (0) 2013.12.31
Trackback 0 And Comment 0
prev | 1 | 2 | next