mysql_connect를 mysqli_connect로 바꾸려면?

mysql_connect를 mysqli_connect로 바꾸려면?

QA

mysql_connect를 mysqli_connect로 바꾸려면?

본문

이러닝 솔루션에서 mysql_connect, mysql_query, mysql_num_rows, mysql_fetch_array등 mysql함수를 사용하고 있습니다. 

 

그런데 이 함수들을 mysqli에 관련된 것으로 바꾸고자 합니다.

 

문제는 mysql_connect, mysql_query, mysql_num_rows, mysql_fetch_array 함수를 사용하는 곳이 상당히 많다는 것입니다.

 

mysql_connect, mysql_query, mysql_num_rows, mysql_fetch_array 를 mysqlI 함수로 바꿀수 있는 방법이 어떤것이 있을까요?

 

mysql_connect, mysql_query, mysql_num_rows, mysql_fetch_array 함수를 찾아서 일일이 바꿔줘야 하나요?

 

아니면 새로운 파일을 만들어서 그 파일에는 mysqli 함수를 사용한후에, 지금부터 만드는 것은 새로 만든 파일을 include해서 사용해야 하나요?

 

조언 부탁드립니다.

이 질문에 댓글 쓰기 :

답변 2

그누보드의 sql 함수들 살펴보세요.

https://www.phpclasses.org/blog/package/9199/post/3-Smoothly-Migrate-your-PHP-Code-using-the-Old-MySQL-extension-to-MySQLi.html

 

lib/common.lib.php 파일

 

function sql_query($sql, $error=G5_DISPLAY_SQL_ERROR, $link=null)

{

    global $g5, $g5_debug;

 

    if(!$link)

        $link = $g5['connect_db'];

 

    // Blind SQL Injection 취약점 해결

    $sql = trim($sql);

    // union의 사용을 허락하지 않습니다.

    //$sql = preg_replace("#^select.*from.*union.*#i", "select 1", $sql);

    $sql = preg_replace("#^select.*from.*[\s\(]+union[\s\)]+.*#i ", "select 1", $sql);

    // `information_schema` DB로의 접근을 허락하지 않습니다.

    $sql = preg_replace("#^select.*from.*where.*`?information_schema`?.*#i", "select 1", $sql);

 

    $is_debug = get_permission_debug_show();

    

    $start_time = $is_debug ? get_microtime() : 0;

 

    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 = _query($sql, $link) or die("<p>$sql<p>" . mysql_errno() . " : " .  mysql_error() . "<p>error file : {$_SERVER['SCRIPT_NAME']}");

        } else {

            $result = _query($sql, $link);

        }

    }

 

 

그누보드에는 일반 mysql_query() 함수가 아니라 sql_query 함수로 재활용해서 만든게 있거든요 보안생각해서 만든거라서

딱히 mysqli_query 로 안해도 될것같아요 그리고 만약에 하게 되면 pdo로 하는게 좋죠~! 아니면 쿼리빌더 라이브러리를 가져다가 쓰면 좋을듯..

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

회원로그인

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