[G5] PHP7 대응 MySQLi 지원 추가 > 기술자료

본문 바로가기
사이트 내 전체검색

기술자료

그누보드 [G5] PHP7 대응 MySQLi 지원 추가

페이지 정보

댓글 0건 조회 1,610회 작성일 17-08-08 15:44

본문

PHP 7 대응을 위해 MySQLi 확장 지원이 추가


1-1. adm/sms_admin/install.php
    mysql_query($f[$i]) or die(mysql_error());

를 아래와 같이 변경

    sql_query($f[$i]) or die(mysqli_error());


1-2. adm/sms_admin/install.php
mysql_query($sql) or die(mysql_error() . "<p>" . $sql);

를 아래와 같이 변경

sql_query($sql) or die(mysqli_error() . "<p>" . $sql);



2. config.php

 define('G5_IS_MOBILE_DHTML_USE', false);
 
를 아래와 같이 추가

 define('G5_IS_MOBILE_DHTML_USE', false);
 
// MySQLi 사용여부를 설정합니다.
define('G5_MYSQLI_USE', true);



3-1. lib/common.lib.php

 // DB 연결
function sql_connect($host, $user, $pass)
 {
     global $g5;
 
    return @mysql_connect($host, $user, $pass);
 }

를 아래와 같이 변경

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);

        // 연결 오류 발생 시 스크립트 종료
        if (mysqli_connect_errno()) {
            die('Connect Error: '.mysqli_connect_error());
        }
    } else {
        $link = mysql_connect($host, $user, $pass);
    }

    return $link;
 }



3-2. lib/common.lib.php
    return @mysql_select_db($db, $connect);

를 아래와 같이 변경

    if(function_exists('mysqli_select_db') && G5_MYSQLI_USE)
        return @mysqli_select_db($connect, $db);
    else
        return @mysql_select_db($db, $connect);



3-3. lib/common.lib.php
// mysql_query 와 mysql_error 를 한꺼번에 처리

를 아래와 같이 변경

function sql_set_charset($charset, $link=null)
{
    global $g5;

    if(!$link)
        $link = $g5['connect_db'];

    if(function_exists('mysqli_set_charset') && G5_MYSQLI_USE)
        mysqli_set_charset($link, $charset);
    else
        sql_query(" set names {$charset} ");
}


// mysqli_query 와 mysqli_error 를 한꺼번에 처리



3-4. lib/common.lib.php
    if ($error)
        $result = @mysql_query($sql, $g5['connect_db']) or die("<p>$sql<p>" . mysql_errno() . " : " .  mysql_error() . "<p>error file : {$_SERVER['SCRIPT_NAME']}");
    else
        $result = @mysql_query($sql, $g5['connect_db']);

를 아래와 같이 변경

    if(function_exists('mysqli_query') && G5_MYSQLI_USE) {
        if ($error) {
            $result = @mysqli_query($link, $sql) or die("<p>$sql<p>" . mysqli_errno($link) . " : " .  mysqli_error($link) . "<p>error file : {$_SERVER['SCRIPT_NAME']}");
        } else {
            $result = @mysqli_query($link, $sql);
        }
    } else {
        if ($error) {
            $result = @mysql_query($sql, $link) or die("<p>$sql<p>" . mysql_errno() . " : " .  mysql_error() . "<p>error file : {$_SERVER['SCRIPT_NAME']}");
        } else {
            $result = @mysql_query($sql, $link);
        }
    }



3-5. lib/common.lib.php
    $result = sql_query($sql, $error);
    //$row = @sql_fetch_array($result) or die("<p>$sql<p>" . mysql_errno() . " : " .  mysql_error() . "<p>error file : $_SERVER['SCRIPT_NAME']");

를 아래와 같이 변경

    global $g5;

    if(!$link)
        $link = $g5['connect_db'];

    $result = sql_query($sql, $error, $link);
    //$row = @sql_fetch_array($result) or die("<p>$sql<p>" . mysqli_errno() . " : " .  mysqli_error() . "<p>error file : $_SERVER['SCRIPT_NAME']");



3-6. lib/common.lib.php
    $row = @mysql_fetch_assoc($result);

를 아래와 같이 변경

    if(function_exists('mysqli_fetch_assoc') && G5_MYSQLI_USE)
        $row = @mysqli_fetch_assoc($result);
    else
        $row = @mysql_fetch_assoc($result);



3-7. lib/common.lib.php
    return mysql_free_result($result);

를 아래와 같이 변경

    if(function_exists('mysqli_free_result') && G5_MYSQLI_USE)
        return mysqli_free_result($result);
    else
        return mysql_free_result($result);



3-8. lib/common.lib.php
 // PHPMyAdmin 참고

를 아래와 같이 내용 추가

function sql_insert_id($link=null)
{
    global $g5;

    if(!$link)
        $link = $g5['connect_db'];

    if(function_exists('mysqli_insert_id') && G5_MYSQLI_USE)
        return mysqli_insert_id($link);
    else
        return mysql_insert_id($link);
}


function sql_num_rows($result)
{
    if(function_exists('mysqli_num_rows') && G5_MYSQLI_USE)
        return mysqli_num_rows($result);
    else
        return mysql_num_rows($result);
}


function sql_field_names($table, $link=null)
{
    global $g5;

    if(!$link)
        $link = $g5['connect_db'];

    $columns = array();

    $sql = " select * from `$table` limit 1 ";
    $result = sql_query($sql, $link);

    if(function_exists('mysqli_fetch_field') && G5_MYSQLI_USE) {
        while($field = mysqli_fetch_field($result)) {
            $columns[] = $field->name;
        }
    } else {
        $i = 0;
        $cnt = mysql_num_fields($result);
        while($i < $cnt) {
            $field = mysql_fetch_field($result, $i);
            $columns[] = $field->name;
            $i++;
        }
    }

    return $columns;
}


function sql_error_info($link=null)
{
    global $g5;

    if(!$link)
        $link = $g5['connect_db'];

    if(function_exists('mysqli_error') && G5_MYSQLI_USE) {
        return mysqli_errno($link) . ' : ' . mysqli_error($link);
    } else {
        return mysql_errno($link) . ' : ' . mysql_error($link);
    }
}


 // PHPMyAdmin 참고



3-9. lib/common.lib.php
// mysql_real_escape_string 의 alias 기능을 한다.
function sql_real_escape_string($field)
 {
     global $g5;
 
    return mysql_real_escape_string($field, $g5['connect_db']);


를 아래와 같이 변경

// mysqli_real_escape_string 의 alias 기능을 한다.
function sql_real_escape_string($str, $link=null)
 {
     global $g5;
 
    if(!$link)
        $link = $g5['connect_db'];

    return mysqli_real_escape_string($link, $str);


자료출처
https://sir.kr/g5_pds/3211
https://github.com/gnuboard/gnuboard5/commit/1fe4684537198967c19302bcb11180fc54ef1805 
  • 트위터로 보내기
  • 페이스북으로 보내기
  • 구글플러스로 보내기

댓글목록

등록된 댓글이 없습니다.


Total 2,248건 1 페이지
기술자료 목록
번호 제목
공지 일반
온라인 강좌를 소개합니다. ( update. 2017-12-05 16:33 ) Hit.16080
2247 PHP
2246 그누보드
2245 JSP
2244 JSP
2243 HTML
2242 일반
2241 그누보드
2240 Linux
2239 제로보드
[XpressEngine] files 폴더의 비밀 ( update. 2018-07-13 21:51 ) Hit.39
2238 MySQL
2237 JavaScript
[jQuery] Magnific Popup ( write. 2018-07-12 ) Hit.53
2236 일반
전자책 읽기에 최적화된 무료 EPUB 뷰어 ( update. 2018-07-11 17:27 ) Hit.66
2235 HTML
2234 HTML
2233 그누보드
ZeroBoard 4를 그누보드 5 로 변경 ( update. 2018-07-02 21:40 ) Hit.85
2232 Search
Bing (빙) 웹마스터도구 사이트 등록하기 ( update. 2018-07-01 02:41 ) Hit.114
2231 일반
IU 노래 181곡을 Youtube에서 연속듣기 ( update. 2018-07-04 23:09 ) Hit.124
2230 그누보드
2229 그누보드
XE -> 그누보드5 변경 v7 ( update. 2018-06-12 13:13 ) Hit.246
2228 제로보드
2227 호스팅
무료 호스팅을 제공하는 업체 ( update. 2018-06-12 03:53 ) Hit.194
2226 제로보드
[XpressEngine] 버전 확인하기 ( write. 2018-06-11 ) Hit.159
2225 제로보드
2224 호스팅
let's encrypt 지원하는 호스팅 ( write. 2018-06-07 ) Hit.174
게시물 검색

회원로그인

계좌이체 or 신용카드 결제하기
해피정닷컴으로 대금결제를 할 수 있습니다

접속자집계

오늘
665
어제
1,405
최대
3,174
전체
4,134,691

회사명: 해피정닷컴   사업자번호: 119-05-36414   전화: 070-7600-3500   팩스: 02-865-3528   주소: 08394 서울시 구로구 디지털로 242 한화비즈메트로1차 1502호
대표: 정창용   개인정보보호책임자: 정창용   통신판매업신고번호: 2014-서울구로-0074 [사업자등록정보확인]   건강기능식품영업신고번호 제2018-0080452호
Copyright 2001~2018 해피정닷컴. All Rights Reserved.