Call to undefined function mysql_connect() 에러 질문드립니다.
본문
카페24 호스팅에서는 잘 구동되는데 (서버환경 UTF-8 (PHP5.3, Mysql 5.x))
xampp 를 최신버전을 설치하고 홈페이지를 구동시키면
Fatal error: Uncaught Error: Call to undefined function mysql_connect() in C:\xampp\htdocs\lib\common.lib.php:1429 Stack trace: #0 C:\xampp\htdocs\common.php(132): sql_connect('localhost', 'haeso_haeso145', 'gdfd878dgdgd') #1 C:\xampp\htdocs\_common.php(2): include_once('C:\\xampp\\htdocs...') #2 C:\xampp\htdocs\index.php(3): include_once('C:\\xampp\\htdocs...') #3 {main} thrown in C:\xampp\htdocs\lib\common.lib.php on line 1429
위와 같은 에러가 뜨면서 홈페이지 접속이 되지 않습니다.
에러나는 해당 소스를 보니
// DB 연결
function sql_connect($host, $user, $pass)
{
global $g5;
return @mysql_connect($host, $user, $pass);
}
위 부분에서 에러가 나는것 같은데 위 소스를 변환하여 에러가 나지 않게 하는 방법이 있는지 문의드립니다.
아니면 보드 버전을 최신화 해야만 에러가 나지 않는지 문의드립니다.
아시는 분 답변 주시면 정말 감사하겠습니다.
답변 4
xampp 를 최신버전을 설치하고 ==> 그렇다면 php 7 이상 버전이 설치 되었습니다
php 7 이상에서는 mysqli_connect를 사용해야 하니 그누보드 최신버젼으로 업그레이드하거나
common.lib 에 들어 있는 sql_***() 함수를 몽땅 최신 common.lib 코드를 복사해서 바꾸고
config.php에 다음 코드 추가
define('G5_MYSQLI_USE', true);
data 및에 dbconfig.php 파일이 있는지 확인해보시기 바랍니다.
/data/dbconfig.php
최신 버젼이면
mysql_connect 함수를 지원 하지 않습니다
// DB 연결
function sql_connect($host, $user, $pass, $db=G5_MYSQL_DB)
{
global $g5;
if(function_exists('mysqli_connect') && G5_MYSQLI_USE) {
$link = @mysqli_connect($host, $user, $pass, $db) or die('MySQL Host, User, Password, DB 정보에 오류가 있습니다.');
// 연결 오류 발생 시 스크립트 종료
if (mysqli_connect_errno()) {
die('Connect Error: '.mysqli_connect_error());
}
} else {
$link = mysql_connect($host, $user, $pass);
}
return $link;
}
아마도 연결 코드를 빼신거 같은데
이런식으로 해서
mysqli 를 지원하면 해당 함수를 사용하도록 하셔야합니다
xampp 를 최신버전을 설치하고...
==
php 설치할 때 필요한 라이브러리 선택을 하셨는지 확인해 보세요.
mysqli,gd, ....