그누보드 [G5] PHP7 대응 MySQLi 지원 추가
페이지 정보
본문
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
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
댓글목록
등록된 댓글이 없습니다.