테스트 사이트 - 개발 중인 베타 버전입니다

mysql_connect를 mysqli_connect로 바꾸려면? 채택완료

다위 5년 전 조회 4,052

이러닝 솔루션에서 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개

채택된 답변
+20 포인트
진서기
5년 전

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

https://www.phpclasses.org/blog/package/9199/post/3-Smoothly-Migrate-your-PHP-Code-using-the-Old-MySQL-extension-to-MySQLi.html">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("

$sql

" . mysqli_errno($link) . " : " .  mysqli_error($link) . "

error file : {$_SERVER['SCRIPT_NAME']}");

        } else {

            $result = @mysqli_query($link, $sql);

        }

    } else {

        if ($error) {

            $result = @mysql_query($sql, $link) or die("

$sql

" . mysql_errno() . " : " .  mysql_error() . "

error file : {$_SERVER['SCRIPT_NAME']}");

        } else {

            $result = @mysql_query($sql, $link);

        }

    }

 

 

로그인 후 평가할 수 있습니다

댓글을 작성하려면 로그인이 필요합니다.

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

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

로그인 후 평가할 수 있습니다

댓글을 작성하려면 로그인이 필요합니다.

답변을 작성하려면 로그인이 필요합니다.

로그인