sql_query 로 불러올때 sql 문은 어떻게 작성해야 표준인가요?

sql_query 로 불러올때 sql 문은 어떻게 작성해야 표준인가요?

QA

sql_query 로 불러올때 sql 문은 어떻게 작성해야 표준인가요?

본문

$sql = " ~~~ ";

$result = sql_query ($sql);

 

 

그누보드에선  이렇게해서 보통 sql 문을 실행 하던데요..

 

sql 따옴표 안에 어떻게 쓰는게 맞는건지 궁금해서 질문 올립니다.

 

따옴표 안에 변수를 어떻게 감싸주는가 하는게 포인트인데요..

 

 

$sql = "update `$g5[member_table]` set mb_friend = `$friend_temp`  where mb_id = `$member[mb_id]` ";

$sql = "update {$g5[member_table]} set mb_friend = {$friend_temp}  where mb_id = {$member[mb_id]} ";

$sql = "update `$g5['member_table']` set mb_friend = `$friend_temp`  where mb_id = `$member['mb_id']` ";

$sql = "update {$g5['member_table']} set mb_friend = {$friend_temp}  where mb_id = {$member['mb_id']} ";

 

일단 위에 4가지는 동작안하고요

 

 

$sql = 'update '.$g5[member_table].' set mb_friend = '.$friend_temp.'  where mb_id = '.$member[mb_id].' ';

$sql = "update '.$g5[member_table].' set mb_friend = '.$friend_temp.'  where mb_id = '.$member[mb_id].' "; 

$sql = "update ".$g5[member_table]." set mb_friend = ".$friend_temp."  where mb_id = ".$member[mb_id]." ";

 

이런식으로 하는것도 안되고요..

 

 

$sql = "update \''.$g5[member_table].'\' set mb_friend = \''.$friend_temp.'\'  where mb_id = \''.$member[mb_id].'\' ";

 

이렇게 하는것도 안됩니다.

 

 

 

그런데

 

$result=sql_query('update '.$g5['member_table'].' set mb_friend = \''.$friend_temp.'\'  where mb_id = \''.$member[mb_id].'\'');

 

변수로 따로 안만들고 

이렇게 바로 다 때려넣는건 또 됩니다...

 

 

대체 어떤 규칙으로 작성되야 하는건지 궁금합니다.

 

그누보드5 파일들 보면 그냥 {} 으로 변수를 감싸서  쿼리문 작성해도 잘만 동작하던데..

저는 왜 안되는지.. 되는건 또 어째서 되는건지...

 

그누보드5 에서 뭔가 손을 봐야 하는건지

아니면 아파치 php설정에서 뭐 어떻게 하는게 잇는건지..

그냥 제가 빠가인건지.. 뭐 여기저기 뒤져봐도 딱히 설명은 없고

궁금해서 질문 올립니다.

 

 

이 질문에 댓글 쓰기 :

답변 1

$sql = "update `$g5[member_table]` set mb_friend = `$friend_temp`  where mb_id = `$member[mb_id]` ";

`(백틱, 숫자 1옆에 있는 역따옴표)으로 값을 감쌀 경우는 칼럼으로 해석합니다.

이건 테이블이나 칼럼만 감싸야 합니다.

위에선 mb_friend = `여기` 부분을 감쌌기 때문에 저 부분을 칼럼으로 해석하려고 할 겁니다.

 

그리고 문자열의 경우는 `(작은따옴표) 혹은 "(큰따옴표)로 감싸야 합니다.

숫자는 제욉니다.

 

기본적인 CRUD(create, read, update, delete) 이것들은 전부 표준입니다.

다만 말씀하신 건 문법에 맞게 안 쓴 것들이기 때문에 실행이 안 되는 겁니다. 

 

$sql = "UPDATE ".$g5['member_table']." SET mb_friend = '".$friend_temp."'  WHERE mb_id = '".$member['mb_id']."'";

$sql = "UPDATE {$g5['member_table']} SET mb_friend = '{$friend_temp}'  WHERE mb_id = '{$member['mb_id']}'";

잘 모르겠다 싶으시면 저렇게 php 변수들은 escape 시켜서 사용하시면 됩니다.

에디트 플러스 같은 프로그램을 사용해 보시면 색상이 바뀌니까 이해가 갈 겁니다.

이렇게나 자세히 설명해서 답변달아주셨는데....달랑 채택만 하는 건.......

화장실 갈 때와 올 때 마음이 다르다더니...
질문할 때 마음과 답변받고 난 마음이 다른가봅니다. ㅋ

댓글과 좋아요는 제가 대신......ㅎㅎ

답변을 작성하시기 전에 로그인 해주세요.
전체 21
QA 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT