mysql을 mysqli로 바꾸는 방법
페이지 정보

본문
mysql을 mysqli로 바꾸는 방법?
** mysql _query ($ sql); 를 mysqli _query ($ sql); **
<?PHP
//in my header file that is included on every page I have this
$DB["dbName"] = "emails";
$DB["host"] = "localhost";
$DB["user"] = "root";
$DB["pass"] = "";
$link = mysql_connect($DB['host'], $DB['user'], $DB['pass']) or die("<center>An Internal Error has Occured. Please report following error to the webmaster.<br><br>".mysql_error()."'</center>");
mysql_select_db($DB['dbName']);
// end header connection part
// function from a functions file that I run a mysql query through in any page.
function executeQuery($sql) {
$result = mysql_query($sql);
if (mysql_error()) {
$error = '<BR><center><font size="+1" face="arial" color="red">An Internal Error has Occured.<BR> The error has been recorded for review</font></center><br>';
if ($_SESSION['auto_id'] == 1) {
$sql_formatted = highlight_string(stripslashes($sql), true);
$error .= '<b>The MySQL Syntax Used</b><br>' . $sql_formatted . '<br><br><b>The MySQL Error Returned</b><br>' . mysql_error();
}
die($error);
}
return $result;
}
// example query ran on anypage of the site using executeQuery function
$sql='SELECT auto_id FROM friend_reg_user WHERE auto_id=' .$info['auto_id'];
$result_member=executequery($sql);
if($line_member=mysql_fetch_array($result_member)){
extract($line_member);
} else {
header("location: index.php");
exit;
}
?>
해결법
==============================
1.
가장 먼저해야 할 일은 적어도 절차형 API를 사용하고자한다면 모든 mysql_ * 함수 호출을 해당 mysqli_ *로 대체하는 것입니다. 더 쉬운 방법이 될 수 있습니다. 절차상의 하나 인 MySQL API.
이를 돕기 위해 The MySQLi Extension Function Summary는 분명 도움이 될 것입니다.
예를 들면 :
일부 함수의 경우 매개 변수를주의 깊게 확인해야 할 수도 있습니다. 여기에 약간의 차이가있을 수 있지만 그다지 많지는 않습니다. mysql과 mysqli는 모두 동일한 라이브러리 (libmysql;)를 기반으로합니다. 최소 PHP = 5.2 이상)
예를 들면 :
일단 당신이 그것을 끝내면, 당신의 스크립트의 새로운 버전을 실행하려고 ... 그리고 모든 것이 작동하는지 확인하십시오; 그렇지 않다면 ... 버그 사냥을위한 시간 ;-)
==============================
2.
(나는 이것이 낡았다는 것을 알지만, 여전히 나온다 ...)
mysql_ *를 mysqli_ *로 바꾸면 mysqli_ * 함수의 전체로드가 전달되는 데이터베이스 링크가 필요하다는 것을 명심하십시오.
예 :
mysql_query($query)
된다
mysqli_query($link, $query)
나는 많은 검사가 필요하다.
==============================
3.
가장 쉬운 방법은 내가 항상 이것을 처리한다.
where $ con = mysqli_connect ($ serverName, $ dbusername, $ dbpassword);
다음 순서로 3 단계 교체
매번 저에게 효과적입니다.
==============================
4.
SQL 액세스를 위해 PDO를 사용하는 것이 임시적으로 권장됩니다.
그런 다음 드라이버를 변경하고 SQL이 새 백엔드에서 작동하는지 확인하는 경우 일뿐입니다. 이론에 의하면. 데이터 이전은 다른 문제입니다.
추상적 인 데이터베이스 접근은 훌륭합니다.
==============================
5.
큰 프로젝트의 경우 많은 파일을 변경해야하고 PHP의 이전 프로젝트 버전이 5.6이고 새로운 프로젝트 버전이 7.1 인 경우 새 파일 sql.php를 만들고 머리글에 포함 시키거나 모든 용도로 사용할 수 있습니다 시간과 SQL 연결이 필요합니다. 예 :
//local
$sql_host = "localhost";
$sql_username = "root";
$sql_password = "";
$sql_database = "db";
$mysqli = new mysqli($sql_host , $sql_username , $sql_password , $sql_database );
/* check connection */
if ($mysqli->connect_errno) {
printf("Connect failed: %s\n", $mysqli->connect_error);
exit();
}
// /* change character set to utf8 */
if (!$mysqli->set_charset("utf8")) {
printf("Error loading character set utf8: %s\n", $mysqli->error);
exit();
} else {
// printf("Current character set: %s\n", $mysqli->character_set_name());
}
if (!function_exists('mysql_real_escape_string')) {
function mysql_real_escape_string($string){
global $mysqli;
if($string){
// $mysqli = new mysqli($sql_host , $sql_username , $sql_password , $sql_database );
$newString = $mysqli->real_escape_string($string);
return $newString;
}
}
}
// $mysqli->close();
$conn = null;
if (!function_exists('mysql_query')) {
function mysql_query($query) {
global $mysqli;
// echo "DAAAAA";
if($query) {
$result = $mysqli->query($query);
return $result;
}
}
}
else {
$conn=mysql_connect($sql_host,$sql_username, $sql_password);
mysql_set_charset("utf8", $conn);
mysql_select_db($sql_database);
}
if (!function_exists('mysql_fetch_array')) {
function mysql_fetch_array($result){
if($result){
$row = $result->fetch_assoc();
return $row;
}
}
}
if (!function_exists('mysql_num_rows')) {
function mysql_num_rows($result){
if($result){
$row_cnt = $result->num_rows;;
return $row_cnt;
}
}
}
if (!function_exists('mysql_free_result')) {
function mysql_free_result($result){
if($result){
global $mysqli;
$result->free();
}
}
}
if (!function_exists('mysql_data_seek')) {
function mysql_data_seek($result, $offset){
if($result){
global $mysqli;
return $result->data_seek($offset);
}
}
}
if (!function_exists('mysql_close')) {
function mysql_close(){
global $mysqli;
return $mysqli->close();
}
}
if (!function_exists('mysql_insert_id')) {
function mysql_insert_id(){
global $mysqli;
$lastInsertId = $mysqli->insert_id;
return $lastInsertId;
}
}
if (!function_exists('mysql_error')) {
function mysql_error(){
global $mysqli;
$error = $mysqli->error;
return $error;
}
}
==============================
6.
다음은 완벽한 튜토리얼입니다. 내 고객을위한 호스팅을 5.4 (OMG !!!)에서 7.x PHP 버전으로 업그레이드 한 후에 사용했습니다.
우선, 새로운 변수 $ link 또는 $ con 또는 원하는 것을 연결해야합니다.
예
연결을 다음과 같이 변경하십시오.
@mysql_connect($host, $username, $password) or die("Error message...");
@mysql_select_db($db);
또는
@mysql_connect($host, $username, $password, $db) or die("Error message...");
에:
$con = mysqli_connect($host, $username, $password, $db) or die("Error message...");
메모장 + +에서 "파일에서 찾기"(Ctrl + Shift + f)를 사용합니다.
다음 순서대로 "파일에서 바꾸기"를 선택합니다.
오류가 발생하면 함수에서 $ con에 액세스 할 수 없기 때문일 수 있습니다.
전역 $ con을 추가해야합니다. 예를 들면 다음과 같습니다.
function my_function(...) {
global $con;
...
}
희망이 도움이됩니다.
==============================
7.
프로젝트에서 변경할 파일이 많은 경우 mysql 함수와 같은 이름의 함수를 만들 수 있습니다. 함수에서 다음 코드와 같이 변환합니다.
$sql_host = "your host";
$sql_username = "username";
$sql_password = "password";
$sql_database = "database";
$mysqli = new mysqli($sql_host , $sql_username , $sql_password , $sql_database );
/* check connection */
if ($mysqli->connect_errno) {
printf("Connect failed: %s\n", $mysqli->connect_error);
exit();
}
function mysql_query($query){
$result = $mysqli->query($query);
return $result;
}
function mysql_fetch_array($result){
if($result){
$row = $result->fetch_assoc();
return $row;
}
}
function mysql_num_rows($result){
if($result){
$row_cnt = $result->num_rows;;
return $row_cnt;
}
}
==============================
8.
mysql을 mysqli로 변환하는 짧은 버전
mysql_connect ---> mysqli_connect
mysql_select_db ---> mysqli_select_db
mysql_error ---> mysqli_connect_error()
mysql_query ---> mysqli_query
mysql_fetch_assoc ---> mysqli_fetch_assoc
==============================
9.
당신은 대량 찾을 수 있고 다음과 같은 메모장 + +를 사용하여 대체, 그것은 나를 위해 일한 :
찾기 : mysql_
바꾸기 : mysqli_
찾기 : _query (
바꾸기 : _query ($ conn,
다음은 변화가 필요하지만 연결 방법에 따라 다릅니다.
config.php의 연결 문자열을 다음과 같이 업데이트하십시오 :
$conn = mysqli_connect($db_host, $db_username, $db_password, $db_name) or die("Unable to Connect");
** mysql _query ($ sql); 를 mysqli _query ($ sql); **
<?PHP
//in my header file that is included on every page I have this
$DB["dbName"] = "emails";
$DB["host"] = "localhost";
$DB["user"] = "root";
$DB["pass"] = "";
$link = mysql_connect($DB['host'], $DB['user'], $DB['pass']) or die("<center>An Internal Error has Occured. Please report following error to the webmaster.<br><br>".mysql_error()."'</center>");
mysql_select_db($DB['dbName']);
// end header connection part
// function from a functions file that I run a mysql query through in any page.
function executeQuery($sql) {
$result = mysql_query($sql);
if (mysql_error()) {
$error = '<BR><center><font size="+1" face="arial" color="red">An Internal Error has Occured.<BR> The error has been recorded for review</font></center><br>';
if ($_SESSION['auto_id'] == 1) {
$sql_formatted = highlight_string(stripslashes($sql), true);
$error .= '<b>The MySQL Syntax Used</b><br>' . $sql_formatted . '<br><br><b>The MySQL Error Returned</b><br>' . mysql_error();
}
die($error);
}
return $result;
}
// example query ran on anypage of the site using executeQuery function
$sql='SELECT auto_id FROM friend_reg_user WHERE auto_id=' .$info['auto_id'];
$result_member=executequery($sql);
if($line_member=mysql_fetch_array($result_member)){
extract($line_member);
} else {
header("location: index.php");
exit;
}
?>
해결법
==============================
1.
가장 먼저해야 할 일은 적어도 절차형 API를 사용하고자한다면 모든 mysql_ * 함수 호출을 해당 mysqli_ *로 대체하는 것입니다. 더 쉬운 방법이 될 수 있습니다. 절차상의 하나 인 MySQL API.
이를 돕기 위해 The MySQLi Extension Function Summary는 분명 도움이 될 것입니다.
예를 들면 :
일부 함수의 경우 매개 변수를주의 깊게 확인해야 할 수도 있습니다. 여기에 약간의 차이가있을 수 있지만 그다지 많지는 않습니다. mysql과 mysqli는 모두 동일한 라이브러리 (libmysql;)를 기반으로합니다. 최소 PHP = 5.2 이상)
예를 들면 :
일단 당신이 그것을 끝내면, 당신의 스크립트의 새로운 버전을 실행하려고 ... 그리고 모든 것이 작동하는지 확인하십시오; 그렇지 않다면 ... 버그 사냥을위한 시간 ;-)
==============================
2.
(나는 이것이 낡았다는 것을 알지만, 여전히 나온다 ...)
mysql_ *를 mysqli_ *로 바꾸면 mysqli_ * 함수의 전체로드가 전달되는 데이터베이스 링크가 필요하다는 것을 명심하십시오.
예 :
mysql_query($query)
된다
mysqli_query($link, $query)
나는 많은 검사가 필요하다.
==============================
3.
가장 쉬운 방법은 내가 항상 이것을 처리한다.
where $ con = mysqli_connect ($ serverName, $ dbusername, $ dbpassword);
다음 순서로 3 단계 교체
매번 저에게 효과적입니다.
==============================
4.
SQL 액세스를 위해 PDO를 사용하는 것이 임시적으로 권장됩니다.
그런 다음 드라이버를 변경하고 SQL이 새 백엔드에서 작동하는지 확인하는 경우 일뿐입니다. 이론에 의하면. 데이터 이전은 다른 문제입니다.
추상적 인 데이터베이스 접근은 훌륭합니다.
==============================
5.
큰 프로젝트의 경우 많은 파일을 변경해야하고 PHP의 이전 프로젝트 버전이 5.6이고 새로운 프로젝트 버전이 7.1 인 경우 새 파일 sql.php를 만들고 머리글에 포함 시키거나 모든 용도로 사용할 수 있습니다 시간과 SQL 연결이 필요합니다. 예 :
//local
$sql_host = "localhost";
$sql_username = "root";
$sql_password = "";
$sql_database = "db";
$mysqli = new mysqli($sql_host , $sql_username , $sql_password , $sql_database );
/* check connection */
if ($mysqli->connect_errno) {
printf("Connect failed: %s\n", $mysqli->connect_error);
exit();
}
// /* change character set to utf8 */
if (!$mysqli->set_charset("utf8")) {
printf("Error loading character set utf8: %s\n", $mysqli->error);
exit();
} else {
// printf("Current character set: %s\n", $mysqli->character_set_name());
}
if (!function_exists('mysql_real_escape_string')) {
function mysql_real_escape_string($string){
global $mysqli;
if($string){
// $mysqli = new mysqli($sql_host , $sql_username , $sql_password , $sql_database );
$newString = $mysqli->real_escape_string($string);
return $newString;
}
}
}
// $mysqli->close();
$conn = null;
if (!function_exists('mysql_query')) {
function mysql_query($query) {
global $mysqli;
// echo "DAAAAA";
if($query) {
$result = $mysqli->query($query);
return $result;
}
}
}
else {
$conn=mysql_connect($sql_host,$sql_username, $sql_password);
mysql_set_charset("utf8", $conn);
mysql_select_db($sql_database);
}
if (!function_exists('mysql_fetch_array')) {
function mysql_fetch_array($result){
if($result){
$row = $result->fetch_assoc();
return $row;
}
}
}
if (!function_exists('mysql_num_rows')) {
function mysql_num_rows($result){
if($result){
$row_cnt = $result->num_rows;;
return $row_cnt;
}
}
}
if (!function_exists('mysql_free_result')) {
function mysql_free_result($result){
if($result){
global $mysqli;
$result->free();
}
}
}
if (!function_exists('mysql_data_seek')) {
function mysql_data_seek($result, $offset){
if($result){
global $mysqli;
return $result->data_seek($offset);
}
}
}
if (!function_exists('mysql_close')) {
function mysql_close(){
global $mysqli;
return $mysqli->close();
}
}
if (!function_exists('mysql_insert_id')) {
function mysql_insert_id(){
global $mysqli;
$lastInsertId = $mysqli->insert_id;
return $lastInsertId;
}
}
if (!function_exists('mysql_error')) {
function mysql_error(){
global $mysqli;
$error = $mysqli->error;
return $error;
}
}
==============================
6.
다음은 완벽한 튜토리얼입니다. 내 고객을위한 호스팅을 5.4 (OMG !!!)에서 7.x PHP 버전으로 업그레이드 한 후에 사용했습니다.
우선, 새로운 변수 $ link 또는 $ con 또는 원하는 것을 연결해야합니다.
예
연결을 다음과 같이 변경하십시오.
@mysql_connect($host, $username, $password) or die("Error message...");
@mysql_select_db($db);
또는
@mysql_connect($host, $username, $password, $db) or die("Error message...");
에:
$con = mysqli_connect($host, $username, $password, $db) or die("Error message...");
메모장 + +에서 "파일에서 찾기"(Ctrl + Shift + f)를 사용합니다.
다음 순서대로 "파일에서 바꾸기"를 선택합니다.
오류가 발생하면 함수에서 $ con에 액세스 할 수 없기 때문일 수 있습니다.
전역 $ con을 추가해야합니다. 예를 들면 다음과 같습니다.
function my_function(...) {
global $con;
...
}
희망이 도움이됩니다.
==============================
7.
프로젝트에서 변경할 파일이 많은 경우 mysql 함수와 같은 이름의 함수를 만들 수 있습니다. 함수에서 다음 코드와 같이 변환합니다.
$sql_host = "your host";
$sql_username = "username";
$sql_password = "password";
$sql_database = "database";
$mysqli = new mysqli($sql_host , $sql_username , $sql_password , $sql_database );
/* check connection */
if ($mysqli->connect_errno) {
printf("Connect failed: %s\n", $mysqli->connect_error);
exit();
}
function mysql_query($query){
$result = $mysqli->query($query);
return $result;
}
function mysql_fetch_array($result){
if($result){
$row = $result->fetch_assoc();
return $row;
}
}
function mysql_num_rows($result){
if($result){
$row_cnt = $result->num_rows;;
return $row_cnt;
}
}
==============================
8.
mysql을 mysqli로 변환하는 짧은 버전
mysql_connect ---> mysqli_connect
mysql_select_db ---> mysqli_select_db
mysql_error ---> mysqli_connect_error()
mysql_query ---> mysqli_query
mysql_fetch_assoc ---> mysqli_fetch_assoc
==============================
9.
당신은 대량 찾을 수 있고 다음과 같은 메모장 + +를 사용하여 대체, 그것은 나를 위해 일한 :
찾기 : mysql_
바꾸기 : mysqli_
찾기 : _query (
바꾸기 : _query ($ conn,
다음은 변화가 필요하지만 연결 방법에 따라 다릅니다.
config.php의 연결 문자열을 다음과 같이 업데이트하십시오 :
$conn = mysqli_connect($db_host, $db_username, $db_password, $db_name) or die("Unable to Connect");
- 이전글php로 텍스트라인에서 영문 한글 특수문자 숫자 지우기 21.02.22
- 다음글substr(), mb_substr() : 문자열 자르기 / 한글문자 자르기 21.02.22
댓글목록
등록된 댓글이 없습니다.

