일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- WebXR
- javscript
- Component
- Node
- PHP
- vuetify
- aframe
- A-Frame
- JS
- vuex
- AR
- 상태관리
- JavaScript
- npx
- VR
- vue-template-compiler
- vue
- WebVR
- promise
- 3d
- auth0
- bootstrap
- web
- Three.js
- version mismatch
- array
- package-lock.json
- PDO
- CI/CD
- EM6
Archives
- Today
- Total
대가는 결과를 만든다
php-psql 접속, 쿼리 예시 본문
반응형
1.psql접속
1 2 3 4 5 6 7 8 9 10 11 12 | <?php $db_host="host=localhost"; //접속할 IP: 서버 PHP에서 해당 로컬 호스트 DB로 접속하기에 localhost $db_port="port=5432"; //접속할 포트 $db_pw="user=postgres password=*******"; //DB접속 user와 pw정보 문자열로 저장 $db_name="dbname=*****"; //접속할 데이터베이스의 이름 저장 //psql접속하는 명령어 : host, port, dbname, user, password $connect_db=pg_connect("$db_host $db_port $db_name $db_pw"); ?> | cs |
각 변수에 postgresql에 접속하기 위한 정보를 저장한 후에 pg_connect()함수를 통해 접속
2.에러로그 출력
1 2 3 4 5 | echo pg_last_error($connect_db); //해당 접속에 대해 에러로그를 출력하는 명령어 | cs |
에러출력 명령어. psql관련 에러 발생시 에러로그 출력!
3.쿼리 실행
3.1 INSERT, DELETE
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | <?php include $_SERVER["DOCUMENT_ROOT"]."/connect_psql.php"; //psql에 접속하는 부분 따로 분리하여 접속할때마다 인클루드하여 사용 $stream_filename = "'".$_POST['stream_filename']."'"; //**psql에서는 문자열을 다룰때 ' '가 필요하다. 없으면 안됨! $insert_query = 'INSERT INTO "LiveChatmsgListTable" (member_nm, chatmsg, msg_timestamp, stream_filename) VALUES ('.$member_nm.', '.$chatmsg.', '.$msg_timestamp.', '.$stream_filename.')'; //**테이블명에 대소문자 구별이 있는 경우 " "가 없으면 안됨!! $insert_result =pg_query($connect_db, $insert_query); //쿼리 실행 문 //성공여부 체크해서 그에 따른 결과 출력 if($insert_result) echo "save_success"; else{ echo "save_failed : "; echo pg_last_error($connect_db); //에러츌룍문 } ?> | cs |
쿼리 실행하는 부분 주의
- " " , ' ' 사용하는 부분에서 MYSQL과 달라서 삽질을 좀 함
- 테이블명이나 컬럼명에 대소문자 구별이 있다면 " "이 꼭 필요함 **
- 컬럼에 들어가는 값이 문자열이면 ' '이 꼭 필요함 ( 없는 경우 핸드폰 번호의 경우 010-2323-2333 을 문자열로 인식하지 않고 숫자로 인식해 연산한 값이 들어감 )
ex) 컬럼명에 대문자 포함된 경우 DELETE 쿼리 예시
1 2 3 4 5 6 | $delete_hpnum_query='DELETE FROM "AuthnumTable" WHERE "HpNum"='.$HpNumForInsert; $delete_hpnum_query_result = pg_query($connect_db, $delete_hpnum_query); | cs |
3.2 SELECT 첫번째 방법
1 2 3 4 5 6 7 8 | <?php //회원정보 테이블에서 파라미터로 전달받은 아이디가 존재하는지 검색 $idcheck_query = 'SELECT count(member_name) FROM "MemberTable" WHERE member_id='.$input_id; //쿼리 $idcheck_query_result =pg_query($connect_db, $idcheck_query); //쿼리 결과 $check_result = pg_fetch_result($idcheck_query_result, 0, 0); ?> | cs |
3.3 SELECT 두번째 방법
(여러 데이터 가져와 JSONObject, Array형태로 만들기)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | <?php $select_chatlist_query = 'SELECT member_nm, chatmsg, msg_timestamp FROM "LiveChatmsgListTable" WHERE stream_filename ='.$stream_filename.' ORDER BY msg_timestamp ASC'; $select_chatlist_result = pg_exec($connect_db, $select_chatlist_query); $get_result = array(); //성공적으로 쿼리 실행한 경우 if($select_chatlist_result){ while($row = pg_fetch_assoc($select_chatlist_result)){ array_push($get_result, array('member_nm' => urlencode($row['member_nm']), 'chatmsg' => urlencode($row['chatmsg']), 'msg_timestamp' => urlencode($row['msg_timestamp']) )); } echo urldecode(json_encode($get_result)); } else{ echo "failed"; echo pg_last_error($connect_db); } ?> | cs |
*기타
MYSQL에서 보던 자료형은 VARCHAR(10) 형태는 PSQL에서는 char varying(10)형태로 사용됨
MYSQL에서 쓰던 DATETIME 자료형이 보이지 않아 DATE와 TIME을 따로 저장함
'개발 > php' 카테고리의 다른 글
php라우팅 라이브러리 : phroute (0) | 2018.12.18 |
---|---|
composer (0) | 2018.12.18 |
PDO (0) | 2018.12.13 |
php curl이란? (0) | 2018.06.06 |
php에서 json으로 받아 파싱하기 (0) | 2018.05.29 |
Comments