안녕하세요
현재 그누보드5 php7 버전을 이용중입니다. 현재 큐패스라는 그누보드가 지원이 되어 연동을 하려고 진행중 이러한 Fatal error: Uncaught Error: Call to undefined function mysql_query() in /ykk007/www/qpass/qpass_install.php:13 Stack trace: #0 {main} thrown in /ykk007/www/qpass/qpass_install.php on line 13 오류구문이 나오기에 혼자서 여러 사이트에 검색을 해보았으며 제 생각에는 php7에서 지원이 안되는 명령어를 사용하여 이러한 오류가 발생하는 것 같아보입니다.
하지만 제가 지식이 부족하여 어떤오류인지도 확실히 모르며 어떻게 해결 해야 될 지 많은 답변 부탁드립니다.
만약 지원이 안되는 명령어를 사용하여 오류가 발생했다면 php7 버전에서 사용 할 방법은 있을까요?
현재 php7 버전에서는 mysql_query, mysql_connect 함수 사용이 불가하며 mysqli_connect, mysqli_query 등으로 변경하여 이용이 가능 하다는걸 알아냈지만 수정을 어떻게 해야 될 지 잘 모르겠습니다.
|
답변 4개
채택된 답변
+20 포인트
아마도 설치하신 큐패스 mysql 가 mysql 4.x 버전대에서 개발한것으로 알고 있습니다.
아래 내용를 참고 하시기 바랍니다.
Copy
function sql_query($sql, $error=G5_DISPLAY_SQL_ERROR, $link=null)
{
global $g5;
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);
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);
}
}
return $result;
}
답변을 작성하려면 로그인이 필요합니다.