top of page

MYSQL 자주 쓰는 명령어 모음

MySQLi 함수

- MySQLi 는 MySQL Improved Extension 의 약자로 기존 MySQL 함수의 확장된 함수이다.

MySQLi 함수는 기존의 함수 방식과 객체 방식 두 가지 형태로 사용할 수 있지만 PHP 5 이상에서만

사용할 수 있기 때문에 호환성 문제가 있다면 MySQL 함수를 사용하도록 한다.

⊙ mysqli_connect()

resource mysqli_connect([string host], [string username], [string password],

[string dbname], [int port], [string socket])

- host : MySQL 서버 주소

- username : 데이터베이스 사용자 계정

- password : 데이터베이스 사용자 비밀번호

- dbname : 선택할 데이터베이스 이름

- port : MySQL 서버 포트 번호

- socket : 소켓 또는 명명된 파이프

=> 데이터베이스에 접속한다.

=> 데이터베이스에 접속하고 연결이 되면 MySQL 연결 정보를 객체로 되돌려준다.

⊙ mysql_close()

bool mysqli_close(mysqli link)

- link : MySQL 연결 객체

=> 데이터베이스의 접속을 종료한다.

⊙ mysqli_select_db()

bool mysqli_select_db(mysqli link, string dbname)

- link : MySQL 연결 객체

- dbname : 선택할 데이터베이스 이름

=> 사용할 데이터 베이스를 선택한다. mysqli_connect() 함수 자체에 데이터베이스를 선택하는 옵션이 있기에

실제로는 데이터베이스를 중간에 변경할때 사용한다.

⊙ mysqli_real_query()

bool mysqli_real_query(mysql link, string query)

- link : MySQL 연결 객체

- query : 쿼리

=> 데이터베이스에 쿼리를 전송한다.

=> 쿼리 결과를 얻으려면 mysqli_use_result() 나 mysql_store_result() 함수를 사용해야 한다.

⊙ mysqli_store_result()

mysqli_result mysqli_store_result(mysqli link)

- link : MySQL 연결 객체

=> 마지막 쿼리의 결과 레코드를 전송한다.

=> insert 와 같은 쿼리는 FALSE를 반환하고, 결과 레코드를 읽어오지 못한 때에도 FALSE를 반환

⊙ mysqli_use_result()

mysqli_result mysqli_use_result(mysqli link)

- link : MySQL 연결 객체

=> 마지막에 수행된 쿼리의 결과 레코드를 조회한다.

=> mysqli_use_result() 혹은 mysqli_store_result() 중 하나는 쿼리의 결과를 취득하기 전에 반드시

호출되어야한다. 그렇지 않으면 다른 쿼리를 전송할 수 없다.

⊙ mysqli_query()

mixed mysqli_query(mysqli link, string query, [int resultmode])

- link : MySQL 연결 객체

- query : 쿼리

- resultmode : mysqli_use_result / mysqli_store_result

=> mysqli_real_query() 함수를 호출한 후 mysqli_use_result() / mysqli_store_result() 함수를 호출한것과 같다.

=> resultmode의 디폴트 값은 mysqli_store_result 이다.

⊙ mysqli_multi_query

bool mysql_multi_query(mysql link, string query)

- link : MySQL 연결 객체

- query : 쿼리

=> 데이터베이스에 하나 이상의 쿼리를 전송한다.

=> MySQLi 클래스에서 새롭게 지원하는 함수로 여러 개의 쿼리를 한 번에 전송하는 기능을 한다.

=> 쿼리의 결과 레코드를 얻으려면 mysqli_use_result() 함수나 mysql_store_result() 함수를 사용해야 한다.

⊙ mysqli_next_result()

bool mysqli_next_result(mysqli link)

- link : MySQL 연결 객체

=> mysqli_multi_query() 함수에 의해서 실행된 결과의 다음 레코드를 가져올 수 있도록 준비한다.

⊙ mysqli_more_result()

bool mysqli_more_result(mysqli link)

- link : MySQL 연결 객체

=> mysqli_multi_query() 함수에 의한 결과 레코드가 더 남아있는지 확인한다.

=> 결과가 남아있다면 TRUE, 남아있지 않다면 FALSE 를 반환한다.

⊙ mysqli_fetch_array()

mixed mysqli_fetch_array(mysqli_result result, [int resulttype])

- result : MySQLi 결과 객체

- resulttype : MYSQLI_ASSOC, MYSQLI_NUM, MYSQLI_BOTH

=> mysqli_query(), mysqli_use_result(), mysqli_store_result() 함수의 결과인 mysqli_result 객체를 입력받아

결과 레코드를 배열로 반환한다.

=> mysql_fetch_array() 함수와 동일하다.

=> mysqli_fetch_row(), mysqli_fetch_assoc() 함수도 역시 확장 전의 mysql 함수들과 같다.

⊙ mysqli_free_result()

void mysqli_free_result(mysqli_result result)

- result : MySQLi 결과 객체

=> 쿼리 결과를 메모리에서 해제한다.

▣ 트랜잭션의 개념

- 트랜잭션이란, 일련의 작업 과정을 하나로 묶은 더 큰 단위이다.

예를들어 설명하면, 현금인출기의 동작을 세 가지로 요약해 보겠다.

1. 계좌의 잔고를 확인한다.

2. 계좌에서 인출금액을 감액한다.

3. 인출금액을 내보낸다.

이러한 과정에서 만약 2번까지 수행하고 에러가 발생한다면 고객은 잔고는 깎였는데 돈은 받지 못하는

상황이 생길 수 있다. 이때 위의 3가지 과정을 하나의 트랜잭션으로 묶어서 처리하게 된다.

2번 이후에 에러가 발생한다면 1,2번 과정을 모두 취소하게 되는데 이를 Rollback 이라 한다.

모든 과정이 정상적으로 처리되었을때 확정을 하여 시스템에 적용하는데 이를 Commit 이라 한다.

⊙ mysqli_autocommit

bool mysqli_autocommitbmysqli link, bool mode)

- link : MySQLi 결과 객체

- mode : 자동 커밋의 경우 TRUE

=> 함수를 자동으로 커밋을 실행할지 결정하는 함수 (commit : 트랜잭션이 종료되었음을 데이터베이스에 알려줌)

⊙ mysqli_commit

bool mysqli_commit(mysqli link)

- link : MySQLi 결과 객체

=> 현재의 트랜잭션을 커밋한다.

=> 커밋을 하면 수행한 트랜잭션이 실제 데이터베이스에 적용되므로 취소할 수 없다.

⊙ mysqli_rollback

bool mysqli_rollback(mysqli link)

- link : MySQLi 결과 객체

=> 현재의 트랜잭션을 롤백한다.

=> 트랜잭션 중에서 수행하던 작업들을 모두 원상태로 되돌림.

출처:네이버블로그


 RECENT POSTS: 
 SEARCH BY TAGS: 
  • Facebook B&W
bottom of page