1. MS-SQL to PHP & MySQL ¶
- 윈도우에서 MySQL 사용시 대소문자 구분 옵션을 반드시 켜 주어야 한다.
~mysql/my.ini :
lower_case_table_names=0
- 형변환 시 특별히 주의해야 할 것은
MS-SQL MySQL TEXT LONGTEXT - PDO_MSSQL 드라이버를 사용했을 때 Text의 긴 문자열을 가져오면 정확히 4096자에서 잘려나가버린다(mb_strlen 사용시).
php.ini에서 드라이버 옵션을 변경해야 한다. 다음 부분을 원하는 크기로 변경하라.
;odbc 사용시 odbc.defaultlrl = 2147483647 ;mssql 사용시 ; Valid range 0 - 2147483647. Default = 4096. mssql.textlimit = 2147483647 mssql.textsize = 2147483647 ;pdo_mssql에서는 현재 4096 제한을 바꿀 수 없는 버그가 있다. ;http://bugs.php.net/bug.php?id=38805 - ASP에서와는 달리 기본 날자값이 로케일과 다르게 표현될 것이다.
그런데 이 형식이 strtotime에서 인식이 안 되 형을 바꿀 수가 없으면 다음과 같이 한다.
<? $sql = "SELECT CONVERT(VARCHAR(20), regdate, 120) AS newdate FROM bbs"; //(중략)...이제 가져와서 원하는 대로 다루면 된다. date("YmdHis",strtotime($rs["newdate"])); ?>
2. 참고 사이트 ¶
- ASP와 PHP 대응표
- ASP-PHP 마이그레이션 도움 페이지
- 로제타코드 - 같은 일을 하기 위한 모든 언어에서의 코드
4. 기타사항 ¶
function getSelectList1(){
//php에서는 동일한 이름으로 multiple check boxes를 생성할 때 brackets([])를 붙이지 않으면 $_POST 변수를 통해 정상적으로 액세스할 수 없다.
//따라서 selectedList1을 selectedList1[]으로 바꾸어 주었는데, 이 경우 document.selectedList1[].options.... 식의 방법으로 접근할 때
//자바스크립트 구문 오류가 발생한다.
//이 함수는 그 구문오류를 피해 해당 요소를 선택하기 위한 것이다.
var elms = document.mainForm.elements;
for(var i=0;i<elms.length;i++){
if(elms[i].name=='selectList1[]')
return elms[i];
}
}
5. 정규표현식 모음 ¶
정규표현식 (eclipse find/replace 기능 기준)
TARGET : if nnumber="p" then if nnumber = "p" then ... FIND : if\s([^\s=]*)\s?=\s?([^\s=]*)\sthen REPLACE : if(\$$1 == $2){ RESULT : if($nnumber == "p"){ elseif($nnumber == "p"){ ...
FIND : ^([^}]\s?)else REPLACE : $1}else WARNING: } else 이런 식으로 되어있으면 잘못동작.
FIND : end if REPLACE : }
TARGET : SQL = "..." FIND : (^\s*)SQL(\s?)= REPLACE : $1\$sql$2= RESULT/TARGET : $sql = "..." FIND : "\s*$ REPLACE : "; RESULT : $sql = "...";
TARGET : rs("lendNum") FIND : ([^"\s]*)\(("[^"]*")\) REPLACE : \$$1[$2] RESULT : $rs["lendNum"]
TARGET : $rs["blah") FIND :(\[[^\]\)]*)\) REPLACE : $1] RESULT : $rs["blah"]