간단한 질문입니다.

간단한 질문입니다.

QA

간단한 질문입니다.

답변 4

본문

예를 들어..

 
$s11="select * from g5_shop_cart where it_id='2580' and ct_status!='쇼핑'";
			$s12=mysql_query($s11);
			$s13=mysql_fetch_array($s12);
			
			echo $s13[it_id];
 

위와 같이 코딩할땐 아래처럼 에러가 나고...

Warning: mysql_fetch_array() expects parameter 1 to be resource

 

 

 





$sql1 = "select * from g5_shop_cart where it_id='2580' and ct_status!='쇼핑'";
				$row1=sql_fetch($sql1); 
			
 
			echo $row1[ct_id];


이렇게 할땐 또 결과값이 잘나오네요..


그냥 간단하게


select count(*) from g5_shop_cart where it_id='2580' and ct_status!='쇼핑'"


위의 쿼리내용을 카운트하고 싶었던거 뿐인데...


php버젼도 5x대이고 mysql5.x버젼입니다.


왜 이럴까요?? ㅠㅠ

이 질문에 댓글 쓰기 :

답변 4

php 버전이 정확히 얼만지 살펴 보세요.

http://php.net/manual/en/function.mysql-fetch-array.php

5.5.0부터 비권장이라고 하니 버전 문제라면 mysql_* 함수 말고 mysqli_* 함수나 PDO를 사용해 보시면 될 것 같습니다.

그누보드에서 제공하는 sql_query(), sql_fetch() 등등은 이미 mysql_*, mysqli_* 두 가지 함수를 설정으로 사용 여부가 가능합니다. 

위 코드의 2~4라인을 아래 코드로 수정해 보세요. ^^

 

$s11 = "select * from g5_shop_cart where it_id='2580' and ct_status!='쇼핑'";

$s12 = sql_query($s11);

$s13 = sql_fetch($s11);

 

그누보드 전용 mysql 함수가 있기 때문입니다. sql_query(), sql_fetch() 등등.. 

또한 그누보드 자체에서 mysql_ 함수들이 sql_ 함수로 바껴있고 mysql_ 함수에서 디비정보를 불러와야하지만 common.lib.php 인가. common.php 에서 sql_ 함수로 디비정보를 미리 다 셋팅해놔서 쉽게 불러 오게끔 작업 되어있습니다. 자세한건 그누보드4~5 자주묻는질문이나 메뉴얼을 참고하세요.

msql 커넥션 방식이 다르기에 일관성을 위해 sql_로 시작하는 함수로 바꿔서 동작합니다. sql_ 로 시작하는 함수들은 그누보드/영카트 프로그램에서 만든 함수이지요. mysql_로 시작하는 함수들은 인수를 하나더 필요로 하고 에러처리등 불편함이 따르기에 sql_  로 시작하는 함수들로 쉽게 처리를 하는 겁니다. 

 

sql_fetch 는 한줄 반환 / mysql_fetch_array는 for나 while문 안에서 여러줄을 반환하기 위해 사용되는 것이지요. 

 

 

답변을 작성하시기 전에 로그인 해주세요.
QA 내용 검색
질문등록
전체 10
© SIRSOFT
현재 페이지 제일 처음으로