2014년 10월 31일 금요일

bindParam / bindValue 차이점 - (PHP PDO)

메뉴얼에도 잘 나와있지만 bindParam과 bindValue 의 차이점에 대한 좋은 예이다.

$sex = 'male';
$s = $dbh->prepare('SELECT name FROM students WHERE sex = :sex');
$s->bindParam(':sex', $sex); // use bindParam to bind the variable
$sex = 'female';
$s->execute(); // executed with WHERE sex = 'female'

$sex = 'male';
$s = $dbh->prepare('SELECT name FROM students WHERE sex = :sex');
$s->bindValue(':sex', $sex); // use bindValue to bind the variable's value
$sex = 'female';
$s->execute(); // executed with WHERE sex = 'male' 

동일한 함수이지만 변수의 평가되는 시점에 차이가 있다.
http://stackoverflow.com/questions/1179874/pdo-bindparam-versus-bindvalue

참고
mysql_connect 등의 함수는 PHP 5.5.0부터 폐기되며, 향수 제거될 예정이라고 한다.
mysql_* 등의 함수는 MySQLi 또는 PDO_MYSQL로 사용해야 한다.
http://kr1.php.net/manual/en/function.mysql-connect.php


2014년 10월 29일 수요일

국제표준 영문 국가 코드

ISO_3166
www.iso.org

국제 표군 국가 코드 확인(ISO 3166)
http://www.iso.org/iso/country_codes.htm

자세한 코드 확인은
https://www.iso.org/obp/ui/#search/code/

ISO 사이트 리뉴얼 때문인지 위키백과의 링크들이 잘못된 정보가 많다

ISO 3166-1
http://ko.wikipedia.org/wiki/ISO_3166-1

※ 참고로 언어 코드는 ISO 639에서 확인 가능하다.
http://ko.wikipedia.org/wiki/ISO_639


2014년 10월 17일 금요일

mysql 데이터가 존재하는 테이블에 auto_increment 속성 추가하기


처음 테이블 생성시 정상적으로 auto_increment 작업이 진행 된 경우에는 상관없지만, 데이터가 이미 추가된 테이블에 auto_increment 칼럼 추가시 오류가 발생한다.

아래와 같은 명령어로 처리 가능하다.

ALTER TABLE 테이블명 ADD COLUMN 컬럼명 INT(11) NOT NULL AUTO_INCREMENT PRIMARY KEY FIRST;

※ 이미 기본인덱스(PRIMARY KEY)가 설정되어 있다면 해제 후 위 명령 실행.
※ 실행 후 자동으로 일련번호 까지 생성됨