일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 | 29 |
30 | 31 |
- ES6
- explode()
- myshortcut
- 정규식
- 동작안함
- Excel
- getimagesize()
- 노션
- MySQL
- 서버부하
- 문자열 포함여부
- includes()
- error
- 1064
- 지직거림
- 오류
- primary_key
- 배열
- php
- jQuery
- 특수문자 포함여부
- JavaScript
- 이걸 그렇게 쓸 줄은 몰랐지
- SQL
- strpos()
- 중간에추가
- srtpos()
- 일부 문자열 포함여부
- implode()
- formula
- Today
- Total
목록php (8)
코딩짜는 일상
mysql_fetch_array와 mysql_fetch_assoc를 보면 둘은 쓰는 방식도 똑같은데 왜 함수가 2가지일까, 둘의 차이가 대체 뭘까 고민을 했습니다. print_r을 써보면 확실하게 차이를 알 수 있다길래 해봤습니다. 출력할 테이블 idx name age 1 emily 20 3 nick 35 5 json 14 SELECT * FROM member oder by idx asc; mysql_fetch_array (PHP 5 이전) (= mysqli_fetch_array 또는 fetch_array ) Array ( [0] => 1 [idx] => 1 [1] => emily [name] => emily [2] => 20 [age] => 20 ) mysql_fetch_assoc (PHP 5 이전) ..
일단 이야기는 다음과 같습니다. DB에서 조회한 내용들을 List로 보여주는 list.php가 있습니다. 저는 이 내용을 EXCEL로 다운로드하고자 PHPExcel 라이브러리를 사용하는 코드를 작성하였습니다. 그리고 해당 코드가 길어서 따로 분리하고자 별도의 excel_down.php를 만들었는데 이때 조회 조건을 GET으로 넘겨 excel_down.php에서 DB를 조회하게 했습니다. 이 경우 list.php의 조회 쿼리를 수정하면 excel_down.php도 똑같이 수정해줘야 하는 단점이 있죠. 그래서 유지보수를 용이하게 하기 위해 list.php에서 DB를 조회하고 그 결과를 excel_down.php가 넘겨받는 방식으로 바꾸고자 했습니다. 첫번째 시도 조회 쿼리(문자열)를 주고받기 list.php..
똑같은 다중배열이지만 Array는 array[0][1]로 출력하고 stdClass Object는 array[0]->1로 출력합니다. 심지어 stdClass Object가 3단 배열이면, // 배열을 아래와 같다고 가정할 때 Array ( [A] => stdClass Object ( [a] => stdClass Object ( [aa] => value ...etc $_array = $array[A] -> a; $_array[aa] -> value; 까지 가야 해서 조금 길어집니다. 어쩌다 이런 일이 생겼는지 실험을 좀 해봤습니다. 상수를 인덱스로 쓰는 배열의 json_encode, json_decode 먼저 배열을 만듭니다. $arr = array( array(), array(), array() ); $a..
PHPExcel은 PHP로 엑셀 내보내기, 불러오기를 할 때 사용하는 라이브러리입니다. 함수, 셀 서식, 그래프 등을 구현할 수 있습니다. Fatal error: Uncaught exception 'PHPExcel_Exception' with message 'Cell coordinate can not be zero-length string' in /PHPExcel라이브러리 위치 위와 같은 오류 메시지가 뜨면, 하단에 Stack trace: #0 으로 시작하는 오류 메세지 내용을 확인하실 수 있는데요. 그중 제가 작성한 엑셀 내보내기.php에서 문제가 된 행에는 duplicateStyleArray()가 있었습니다. [[오류 코드]] $sheet -> duplicateStyleArray( array( 'fo..
어제 2주정도 붙잡고 있었던 array를 POST로 전달하는 문제를 해결했다. 개발 유지보수를 용이하게 하기 위함이었는데... 들인 노력에 비해 코드는 적용도 못 되고 사라져야 했다. 이유인 즉슨... 조회 결과를 배열로 만들어 주고받으면 조회된 rows가 많을 수록 배열 크기도 커지고 사용될 서버 메모리도 늘어날 것이라는 점이었다. 덤으로 전달받을 녀석에겐 필요한데 조회해서 넘겨줄 녀석에겐 필요없는 칼럼의 경우... 필요없는 칼럼까지 조회함으로써 시간을 더 소모할 수 있다는 단점도 추가된다. 크~ 이걸로 백엔드가 갖춰야 할 관점에 대해 한 수 배웠다. 진짜 많이 생각해야되넹;; 뭐... 일단 해결책으로는 1. 배열 말고 쿼리를 주고받는 걸로 바꾸고... 2. 기능 on하면 GET이든 POST든 변수A를..
DB검색용 API를 만들고 그걸 출력하는 페이지를 만들었는데, API 출력 란에 1065 : Query was empty 가 출력되었습니다. 인터넷에 검색해보니 $sql = ''; $result = mysql_query($sql); 위와 같은 상황에서 발생할 수 있다고 했습니다. 아니... 분명 $sql에 쿼리 문구 넣었고.. 심지어 DB에서 테스트해봐도 정상 작동하는 쿼리인데 왜...? 그래서 다시 확인해봤더니... $spl = ''; $result = mysql_query($sql); ... 정답은 오타였습니다. 이렇게 또 한 번 저의 허술함을 깨닫게 되는군요~
문제 글 삭제 기능을 수행하는 delete.php를 작성 후 실행. → 삭제 되었다는 알람이 뜸. → 메인으로 돌아왔지만 삭제했던 글이 그대로 남아있음. 분석 삭제 되었다는 알람이 뜨는 걸 보면 삭제 쿼리가 정상적으로 작동된 것을 알 수 있음. (쿼리가 잘못되었다면 오류창이 떴을 것임) 해결책 1. 혹시나 오타가 있는지 확인해본다. (특히 삭제할 레코드를 특정해주는 WHERE문 다음 내용) → 문제 없음. 2. MySQL 서버 설정을 재확인. (db.php) → 문제 없음. 3. 서버 설정을 보니 root계정이 아닌 새로 만든 계정을 사용중인 것을 확인. 계정에 부여된 권한 확인. → DELETE권한이 없어서 부여함. → 해결!! 이것 참... 개발 시작한지 얼마 안 되었는데 벌써부터 혼자 다양한 삽질을..

PHP로 게시판을 만들던 중 글 올리기 테스트에서 알람창의 한글이 깨지는 현상 발견... 이게 왜 이런고 찾아보니... charset 설정이 한글 인코딩인 utf-8로 되어있어야 한다는 설명이 있었다. 그래서 인코딩 설정들 다시 찾아봄 후보 1. index.php, write.php 일단 이녀석들 인코딩이 설정 안 되어있었다면 해당 페이지에 한글이 깨졌지 글 등록에 성공했다는 알람의 한글이 깨지진 않을 것이다. 그래도 혹시나 하고 확인했으나 역시나 아님. 웹 포트폴리오 후보 2. writeON.php 글을 작성하고 등록버튼을 누르면 파라메터 전송과 알람이 실행되는 파일. 그냥 파라메터 전송인데 굳이...? 라고 생각했으나 일단은 없어서 추가해봄. 결과는 바뀐 게 없음... 후보 3. db.php 서버 설..