mysql 에서 mysqli로 변경
페이지 정보
본문
새로운 변수 $con db에 연결 한다.
mysql 형식의 db연결 $con = @mysql_connect($host, $username, $password, $dbname) or die("Error message...");
혹은
$con = mysql_connect($host, $username, $password) or die("Error message...");
mysql_select_db($dbname);
를 mysqli 형식으로 연결
$con = mysqli_connect($host, $username, $password, $dbname) or die("Error message...");
mysqli_set_charset($con, 'utf8mb4');
port 번호를 넣어야 할 경우 마지막에 넣는다.
$con = @mysqli_connect("localhost","username","password","dbname", "3306");
이 때
mysql 형식 mysql_query($query) 혹은 mysql_query($query, $con) 을
mysqli 형식 mysqli_query($con, $query) 로 바꾸면서 꼭 $con 을 그것도 먼저 넣어준다.
그러므로 모든 파일에서 다음 구문들은 다음 순서로 바꾸어 저장한다
모든 mysql_query (는 mysqli_query ($con,
모든 mysql_error ()는 mysqli_error ($con)
모든 mysql_close ()는 mysqli_close ($con)
모든 mysql_insert_id ()는 mysqli_insert_id ($con)
모든 mysql_real_escape_string (는 mysqli_real_escape_string ($con,
모든 mysql_는 mysqli_
오류가 발생하면 $con이 함수에서 액세스 할 수 없기 때문일 수 있다.
이 때는
global $con; 을 추가 해야한다. 예를 들면 다음과 같다.
function my_function(...) {
global $con;
...
}
php에서 insert 등 쿼리문 쓸 때 post로 받으면 {$_POST[변수]} 대괄호안에 넣어 준다.
$sql = "insert into memo(변수1, 변수2, 변수3) values('{$_POST['변수1']}','{$_POST['변수2']}','{$_POST['변수3']}')";
큰 프로젝트의 경우 변경해야 할 파일이 많고 PHP의 이전 프로젝트 버전이 5.6이고 새 버전이 7.1 인 경우 새 파일 tomysqli.php를 만들어 헤더에 포함하여 모든 곳에서 사용할 수 있다. 시간과 SQL 연결이 필요하다. 예를 들면 :
//local
$host = "localhost";
$username = "root";
$password = "";
$dbname = "db";
$mysqli = new mysqli($host , $username , $password , $dbname );
/* check connection */
if ($mysqli->connect_errno) {
printf("Connect failed: %s\n", $mysqli->connect_error);
exit();
}
// /* change character set to utf8mb4 */
if (!$mysqli->set_charset("utf8mb4")) {
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($host , $username , $password , $dbname );
$newString = $mysqli->real_escape_string($string);
return $newString;
}
}
}
// $mysqli->close();
$conn = null;
if (!function_exists('mysql_query')) {
function mysql_query($query) {
global $mysqli;
// echo "Hello";
if($query) {
$result = $mysqli->query($query);
return $result;
}
}
}
else {
$conn=mysql_connect($host,$username, $password);
mysql_set_charset("utf8mb4", $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;
}
}
mysql 형식의 db연결 $con = @mysql_connect($host, $username, $password, $dbname) or die("Error message...");
혹은
$con = mysql_connect($host, $username, $password) or die("Error message...");
mysql_select_db($dbname);
를 mysqli 형식으로 연결
$con = mysqli_connect($host, $username, $password, $dbname) or die("Error message...");
mysqli_set_charset($con, 'utf8mb4');
port 번호를 넣어야 할 경우 마지막에 넣는다.
$con = @mysqli_connect("localhost","username","password","dbname", "3306");
이 때
mysql 형식 mysql_query($query) 혹은 mysql_query($query, $con) 을
mysqli 형식 mysqli_query($con, $query) 로 바꾸면서 꼭 $con 을 그것도 먼저 넣어준다.
그러므로 모든 파일에서 다음 구문들은 다음 순서로 바꾸어 저장한다
모든 mysql_query (는 mysqli_query ($con,
모든 mysql_error ()는 mysqli_error ($con)
모든 mysql_close ()는 mysqli_close ($con)
모든 mysql_insert_id ()는 mysqli_insert_id ($con)
모든 mysql_real_escape_string (는 mysqli_real_escape_string ($con,
모든 mysql_는 mysqli_
오류가 발생하면 $con이 함수에서 액세스 할 수 없기 때문일 수 있다.
이 때는
global $con; 을 추가 해야한다. 예를 들면 다음과 같다.
function my_function(...) {
global $con;
...
}
php에서 insert 등 쿼리문 쓸 때 post로 받으면 {$_POST[변수]} 대괄호안에 넣어 준다.
$sql = "insert into memo(변수1, 변수2, 변수3) values('{$_POST['변수1']}','{$_POST['변수2']}','{$_POST['변수3']}')";
큰 프로젝트의 경우 변경해야 할 파일이 많고 PHP의 이전 프로젝트 버전이 5.6이고 새 버전이 7.1 인 경우 새 파일 tomysqli.php를 만들어 헤더에 포함하여 모든 곳에서 사용할 수 있다. 시간과 SQL 연결이 필요하다. 예를 들면 :
//local
$host = "localhost";
$username = "root";
$password = "";
$dbname = "db";
$mysqli = new mysqli($host , $username , $password , $dbname );
/* check connection */
if ($mysqli->connect_errno) {
printf("Connect failed: %s\n", $mysqli->connect_error);
exit();
}
// /* change character set to utf8mb4 */
if (!$mysqli->set_charset("utf8mb4")) {
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($host , $username , $password , $dbname );
$newString = $mysqli->real_escape_string($string);
return $newString;
}
}
}
// $mysqli->close();
$conn = null;
if (!function_exists('mysql_query')) {
function mysql_query($query) {
global $mysqli;
// echo "Hello";
if($query) {
$result = $mysqli->query($query);
return $result;
}
}
}
else {
$conn=mysql_connect($host,$username, $password);
mysql_set_charset("utf8mb4", $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;
}
}
- 이전글진짜 한글날은 9월 30일. 21.11.07
- 다음글상단메뉴 바탕색 글자크기 변경 21.03.14
댓글목록
등록된 댓글이 없습니다.