간단한 질문입니다.
본문
예를 들어..
$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문 안에서 여러줄을 반환하기 위해 사용되는 것이지요.