리눅스
[CentOS] PHP MySQL 일괄 MySQLi 로 변경 방법
Link2Me
2021. 11. 5. 14:14
728x90
CentOS 리눅스에서 PHP 소스코드가 MySQL 연결방식으로 코딩된 소스코드를 MySQLi 로 일괄 변경하는 방법이다.
디렉토리 /home/httpd/htdocs/ 를 Web Root directory 로 설정되어 있고, PHP 소스코드가 sub directory를 포함하여 있는 경우라고 보면 된다.
PHP 5.X 버전의 소스코드를 PHP 7.X 버전으로 일괄 변경할 때 유용한 기능이다.
# 디렉토리 chmod 755 및 파일 chmod 644 권한으로 변경
find /home/httpd/htdocs -type d -exec chmod 755 {} \;
find /home/httpd/htdocs -type f -exec chmod 644 {} \;
find /home/httpd/htdocs -type f -name '*.php' -exec perl -pi -e 's/mysql_num_rows/mysqli_num_rows/g' {} \;
find /home/httpd/htdocs -type f -name '*.php' -exec perl -pi -e 's/mysql_fetch/mysqli_fetch/g' {} \;
find /home/httpd/htdocs -type f -name '*.php' -exec perl -pi -e 's/mysql_query\(/mysqli_query\(\$db,/g' {} \;
find /home/httpd/htdocs -type f -name '*.php' -exec perl -pi -e 's/mysql_error\(/mysqli_error\(\$db/g' {} \;
find /home/httpd/htdocs -type f -name '*.php' -exec perl -pi -e 's/mysql_close\(/mysqli_close\(\$db/g' {} \;
find /home/httpd/htdocs -type f -name '*.php' -exec perl -pi -e 's/mysql_insert_id\(/mysqli_insert_id\(\$db/g' {} \;
|
위에서 보면 $db 로 되어 있는 걸 확인할 수 있다.
db를 연결하는 dbconnect.php 파일의 내용을 아래와 같이 작성하고 include 해서 사용하면 된다.
<?php
$db_server = 'localhost';
$db_user_name = 'dbuser';
$db_password = 'dbpassword';
$db_name = 'dbname';
$db['port'] = "3306";
$db = isConnectDb($db);
function isConnectDb($db)
{
$conn = mysqli_connect($db_server,$db_user_name,$db_password,$db_name,$db['port']);
mysqli_set_charset($conn, "utf8"); // DB설정이 잘못되어 euc-kr 로 되어 있으면 문제가 됨
if (mysqli_connect_errno()) {
echo "Failed to connect to MySQL: " . mysqli_connect_error();
exit;
} else {
return $conn;
}
}
?>
|
728x90