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;
}
?>
할 은 아마 것을 입니다.mysql_*
하는 기능 콜을 지정합니다.mysqli_*
적어도 프로시저 API를 사용할 의향이 있다면 MySQL API를 기반으로 한 코드가 이미 있다는 점을 고려하면 더 쉬운 방법입니다.
이를 위해 MySQLi Extension Function Summary가 도움이 될 것입니다.
예:
mysql_connect
대체하다mysql_error
콘텍스트에 따라 및/또는으로 대체됩니다.mysql_query
대체하다- 등등
참고: 일부 함수의 경우 파라미터를 주의 깊게 확인해야 할 수 있습니다.여기저기 차이가 있을 수 있지만 mysql과 mysqli는 모두 같은 라이브러리(libmysql; 적어도 PHP <= 5.2)에 기반하고 있습니다.
예:
- mysql에서는 접속 후 쿼리를 실행할 데이터베이스를 지정해야 합니다.
- mysqli를 사용하면 데이터베이스 이름을 의 네 번째 파라미터로 지정할 수 있습니다.
- 다만, 원하시면 사용할 수 있는 기능도 있습니다.
Once you are done with that, try to execute the new version of your script... And check if everything works ; if not... Time for bug hunting ;-)
(오래된 건 알지만...)
를 치환하는 mysql_*
mysqli_*
그 다음, 모든 하중이mysqli_*
함수에는 데이터베이스 링크가 전달되어야 합니다.
예:
mysql_query($query)
된다
mysqli_query($link, $query)
즉, 많은 점검이 필요합니다.
mysql_*
APIMySQLi API로 합니다.
새로운 mysqli 확장이 이루어진 이유는 MySQL 시스템 버전 4.1.3 이상에서 볼 수 있는 새로운 기능을 활용하기 위해서입니다.를 " "에서 할 때"mysql_*
개선사항을 가 있습니다. 않으면 가 될 수 .mysqli API의 경우입니다.그렇지 않으면 업그레이드 작업이 헛수고가 될 수 있습니다.
에는 여러 가지 확장 기능은 mysqli 확장보다 다음과 같습니다mysql 확장에는 다음과 같습니다.
- 객체 지향 인터페이스
- 준비 스테이트먼트 지원
- 강화된 디버깅 기능
에서 할 때mysql_*
MySQLi에 대한 기능은 이러한 기능과 이 API를 사용하는 방법에 대한 몇 가지 변경 사항을 고려하는 것이 중요합니다.
1. 객체 지향 인터페이스 대 절차 기능
새로운 mysqli 객체 지향 인터페이스는 이전 기능보다 크게 개선되었으며 코드를 깔끔하게 하고 인쇄 오류의 영향을 덜 받을 수 있습니다.이 API의 절차 버전도 있지만, 이 API를 사용하는 것이 권장되지 않습니다.그 때문에, 에러가 발생하기 쉬운 코드의 판독이 어려워지기 때문입니다.
MySQLi를 사용하여 데이터베이스에 대한 새 연결을 열려면 MySQLi 클래스의 새 인스턴스를 만들어야 합니다.
$mysqli = new \mysqli($host, $user, $password, $dbName);
$mysqli->set_charset('utf8mb4');
절차 스타일을 사용하면 다음과 같습니다.
$mysqli = mysqli_connect($host, $user, $password, $dbName);
mysqli_set_charset($mysqli, 'utf8mb4');
3개의 만 3개의 하다는 점에 해 주십시오.mysql_connect
API 」 。
$link = mysql_connect($host, $user, $password);
mysql_select_db($dbName, $link);
mysql_query('SET NAMES utf8');
PHP 코드가 php.ini에 정의된 기본 파라미터와 암묵적인 연결에 의존하는 경우, 이제 코드의 파라미터를 전달하고 MySQLi 연결을 열어 모든 프로시저 함수에 연결 링크를 제공하거나 OOP 스타일을 사용해야 합니다.
자세한 내용은 다음 문서를 참조하십시오.mysqli를 사용하여 올바르게 연결하는 방법
2.준비된 진술의 지원
이것은 큰 문제죠.MySQL은 MySQL 4.1(2004)에서 네이티브하게 준비된 문장에 대한 지원을 추가했습니다.준비된 문은 SQL 주입을 방지하는 가장 좋은 방법입니다.네이티브로 준비된 스테이트먼트에 대한 지원이 PHP에 추가된 것은 논리적입니다.준비된 문장은 SQL 문과 함께 데이터를 전달해야 할 때마다 사용해야 합니다(예:WHERE
,INSERT
★★★★★★★★★★★★★★★★★」UPDATE
의
이전 MySQL API에는 SQL에서 사용되는 문자열을 이스케이프하는 기능이 있었지만 SQL 주입에 대한 보호를 목적으로 한 것은 아니므로 당연히 이 용도로 사용해서는 안 됩니다.
새로운 MySQLi API는 이전 것과 동일한 문제로 인해 준비된 스테이트먼트를 사용할 수 없는 경우를 제외하고는 사용하지 않는 하위 호환성을 위한 대체 함수를 제공합니다.
이전 mysql_* 방식:
$login = mysql_real_escape_string($_POST['login']);
$result = mysql_query("SELECT * FROM users WHERE user='$login'");
준비된 스테이트먼트 방법:
$stmt = $mysqli->prepare('SELECT * FROM users WHERE user=?');
$stmt->bind_param('s', $_POST['login']);
$stmt->execute();
$result = $stmt->get_result();
MySQLi에서 준비된 문장은 초보자에게 다소 불쾌하게 보일 수 있습니다.새로운 프로젝트를 시작하는 경우 보다 강력하고 단순한 PDO API를 사용하는 것이 좋습니다.
3. 강화된 디버깅 기능
일부 구식 PHP 개발자는 SQL 오류를 수동으로 확인하고 디버깅 수단으로 브라우저에 직접 표시하는 데 익숙합니다.그러나 이러한 관행은 번거로울 뿐만 아니라 보안상의 위험도 수반하는 것으로 나타났습니다.다행히 MySQLi는 오류 보고 기능이 향상되었습니다.
MySQLi는 PHP를 사용합니다.PHP 예외는 스크립트에서 버블이 발생하며 처리되지 않으면 즉시 종료됩니다. 즉, 잘못된 명령어 이후의 명령어는 실행되지 않습니다., PHP Fatal에 코어에서 오류와 합니다.display_errors
★★★★★★★★★★★★★★★★★」log_errors
설정을 지정합니다.를 이노블로 MySQLi 예외 행을 합니다.mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT)
DB를 사용합니다.
mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$mysqli = new \mysqli($host, $user, $password, $dbName);
$mysqli->set_charset('utf8mb4');
다음과 같은 코드 작성에 익숙한 경우:
$result = mysql_query('SELECT * WHERE 1=1');
if (!$result) {
die('Invalid query: ' . mysql_error());
}
또는
$result = mysql_query('SELECT * WHERE 1=1') or die(mysql_error());
그럴 가 없다die()
당신의 코드로.
mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$mysqli = new \mysqli($host, $user, $password, $dbName);
$mysqli->set_charset('utf8mb4');
$result = $mysqli->query('SELECT * FROM non_existent_table');
// The following line will never be executed due to the mysqli_sql_exception being thrown above
foreach ($result as $row) {
// ...
}
어떤 이유로 예외를 사용할 수 없는 경우 MySQLi에는 오류 검색을 위한 동등한 기능이 있습니다.하시면 됩니다.mysqli_connect_error()
및 「」를 합니다.mysqli_error($mysqli)
에러가 없는지 확인합니다..mysqli_error($mysqli)
OOP 하여 OOP를 사용합니다.$mysqli->error
.
$result = $mysqli->query('SELECT * FROM non_existent_table') or trigger_error($mysqli->error, E_USER_ERROR);
상세한 것에 대하여는, 다음의 투고를 참조해 주세요.
가 죽어야 mysqli가 죽어야 요?
MySQLi를 사용하다
4. 기타 변경사항
도 ★★★★★★★★★★★★의 모든 기능은 아닙니다.mysql_*
는 MySQLi에서만 이름과 연결 링크에 첫 번째 매개 변수로 "i"가 추가되어 있습니다.이치하다
mysql_client_encoding()
has has has has has has has has has has has has has has has 로 되었습니다.mysqli_character_set_name($mysqli)
mysql_create_db
상대방이 없습니다. 또는 ""를 사용합니다.mysqli_query
대신에mysql_drop_db
상대방이 없습니다. 또는 ""를 사용합니다.mysqli_query
, ★★★★★★★★★★★★★★★★」mysql_db_name
&mysql_list_dbs
되었습니다.SHOW DATABASES
mysql_list_tables
되었습니다.SHOW TABLES FROM dbname
mysql_list_fields
되었습니다.SHOW COLUMNS FROM sometable
mysql_db_query
-> 용>mysqli_select_db()
으로 쿼리에 DB 하거나 쿼리에 이름을 합니다.mysql_fetch_field($result, 5)
두 파라미터는 -> 에 .mysqli_fetch_field
를 사용할 수 있습니다.mysqli_fetch_field_direct
에 두고mysql_field_flags
,mysql_field_len
,mysql_field_name
,mysql_field_table
&mysql_field_type
가 ->로 .mysqli_fetch_field_direct
mysql_list_processes
을 사용하다 ID 를 사용합니다.mysqli_thread_id
mysql_pconnect
has has has has has has has has has has has 로 바뀌었습니다.mysqli_connect()
p:
prefix(호스트 프레픽스)mysql_result
-> 용>mysqli_data_seek()
mysqli_field_seek()
★★★★★★★★★★★★★★★★★」mysqli_fetch_field()
mysql_tablename
되었습니다.SHOW TABLES
mysql_unbuffered_query
가 삭제되었습니다.버퍼링된 쿼리 및 버퍼링되지 않은 쿼리에 대한 자세한 내용은 이 문서를 참조하십시오.
내가 항상 이 일을 처리하는 가장 쉬운 방법은 어디에요.
$con = mysqli_connect($serverName,$dbusername,$dbpassword);
다음 순서로 3단계 교환
- mysqli_select_db($con)를 포함한 모든 "mysql_select_db"(")
- mysql_query($con)를 포함한 모든 "mysql_query()" 및
- 모든 "mysql_"와 "mysqli_".
이건 매번 나한테 효과가 있어
2020+답변수
저는 렉터라는 도구를 만들었습니다. 이 도구는 즉각적인 업그레이드를 처리합니다.mysql → mysqli 세트도 있습니다.
처리 방법:
함수 이름 변경
계속적인 이름 변경
스위치드 인수
1:1 이외의 함수가 변경을 호출합니다.예를 들어 호출합니다.
$data = mysql_db_name($result, $row);
↓
mysqli_data_seek($result, $row); $fetch = mysql_fetch_row($result); $data = $fetch[0];
Rector 사용방법
1. Composer를 사용하여 설치합니다.
composer require rector/rector --dev
// or in case of composer conflicts
composer require rector/rector-prefixed --dev
2. 작성rector.php
에서 Mysql에서 로 설정되었습니다.Mysql에서 Mysqli로 설정됨
<?php
use Rector\Core\Configuration\Option;
use Rector\Set\ValueObject\SetList;
use Symfony\Component\DependencyInjection\Loader\Configurator\ContainerConfigurator;
return static function (ContainerConfigurator $containerConfigurator): void {
$parameters->set(Option::SETS, [
SetList::MYSQL_TO_MYSQLI,
]);
};
3. /src 디렉토리에서 Rector를 실행하여 차이만 표시합니다.
vendor/bin/rector process src --dry-run
4. Rector가 코드를 변경하도록 합니다.
vendor/bin/rector process src
저는 이미 2개의 큰 PHP 프로젝트에서 실행했고 완벽하게 작동합니다.
큰 프로젝트의 경우 변경해야 할 파일이 많고 이전 프로젝트 버전의 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;
}
}
SQL 액세스를 위해 PDO를 사용하는 것을 잠정적으로 권장합니다.
그 후 드라이버를 변경하여 SQL이 새로운 백엔드에서 동작하는지 확인하는 경우만 해당됩니다.이론상으로는.데이터 이행은 다른 문제입니다.
추상 데이터베이스 액세스는 훌륭합니다.
PHP 업그레이드 후 다시 웹 사이트를 만들어야 할 경우 빠르게 만드는 방법을 설명합니다.고객님의 호스팅을 5.4(OMG!!)에서 7.x PHP 버전으로 업그레이드하여 사용했습니다.
이것은 회피책으로 PDO 또는 mysqli 클래스를 사용하여 모든 코드를 다시 쓰는 것이 좋습니다.
1. 접속의 정의
인 '아, 아, 아, 아, 아, 아, 아, 아, 아, 아, 아, 아, 아, 아, 아, 아, 아, 아, 아, 아, 아, 아, 아, 아, 아, 아, 아, 아, 아, 아, 아, 아, 아, 아, 아, 아, 아$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...");
2. mysql_*의 변경
메모장++에서는, 「Find in files」(Ctrl + Shift + f):
다음 순서로 [Replace in Files]를 선택합니다.
mysql_mysqli_mysqlycon,
mysql_error() -> mysqli_error con)
mysql_close() -> mysqli_close con)
mysql_insert_id() -> mysqli_insert_idsecon)
mysql_real_cring_string(-> mysqli_real_cring_string)
mysql_ -> mysqli_
3. 조정
오류가 발생하면 $con이 함수에서 액세스할 수 없기 때문일 수 있습니다.
'아까보다'를 넣어야 요.global $con;
모든과 같이 할 수 있습니다.
function my_function(...) {
global $con;
...
}
클래스에서는 SQL에 합니다.$this->con
$con
각 이 " "는" "는" "는").mysqli_query($con, $query);
)
같은 이름으로 함수를 만들어 새로운 이름으로 변환하고 덮어씁니다.
$host = "your host";
$un = "username";
$pw = "password";
$db = "database";
$MYSQLI_CONNECT = mysqli_connect($host, $un, $pw, $db);
function mysql_query($q) {
global $MYSQLI_CONNECT;
return mysqli_query($MYSQLI_CONNECT,$q);
}
function mysql_fetch_assoc($q) {
return mysqli_fetch_assoc($q);
}
function mysql_fetch_array($q){
return mysqli_fetch_array($q , MYSQLI_BOTH);
}
function mysql_num_rows($q){
return mysqli_num_rows($q);
}
function mysql_insert_id() {
global $MYSQLI_CONNECT;
return mysqli_insert_id($MYSQLI_CONNECT);
}
function mysql_real_escape_string($q) {
global $MYSQLI_CONNECT;
return mysqli_real_escape_string($MYSQLI_CONNECT,$q);
}
그것은 나에게 효과가 있습니다.여러분들에게 효과가 있기를 바랍니다.제가 틀렸다면 정정해 주세요.
프로젝트에서 변경할 파일이 많은 경우 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;
}
}
만, 「10」에 의존한 의 애플리케이션을 「가 있는 있습니다.mysql
extension - 원래 프로그래머는 모든 코드를 리팩터링하는 것이 귀찮아서 고객에게 최신 버전의 PHP 5.6을 실행하도록 지시합니다.
5., 은 PHP 5.6에 대한 . 다시 말해, 개발자들은 그들의 의존성을 없애기 위해 10년이 걸렸습니다.mysql
'로 이동하겠습니다.PDO
음)mysqli
...)는...많은 레거시 코드를 변경하는 것은 비용이 많이 들고, 모든 관리자가 수만 개의 라인이 있는 프로젝트를 '수정'하기 위해 셀 수 없이 많은 시간을 기꺼이 지불하지는 않습니다.
저는 많은 솔루션을 검색했습니다.저 같은 경우에는 @esty-shlomovitz가 제공하는 솔루션을 자주 사용했지만, 그 사이에 더 좋은 것을 발견했습니다.
https://www.phpclasses.org/package/9199-PHP-Replace-mysql-functions-using-the-mysqli-extension.html
(다운로드하려면 등록이 필요하지만 몇 분밖에 걸리지 않습니다.)
로, 「2」 「2」 「2」 「2」 「2」 「2」 「2」 「2」 「2」 「2」 「2」 「2」 「1」 「2」 「2」 「2」 「2」 「1」 「1」 「2」의 「2의 「1개의 파일입니다.mysql
확장 및 매우 영리하게 모든 것을 에뮬레이트한다(사용).mysqli
)을를 사용할 수 있습니다에 대해 크게 걱정할 필요가 없습니다.물론 완벽한 솔루션은 아니지만, 현재 출시되어 있는 모든 사례의 99%에서 효과가 있을 가능성이 높습니다.
또, 이행시의 잡무에 대처하기 위한 좋은 튜토리얼(이행시의 일반적인 함정 중 상당수를 참조)도, https://www.phpclasses.org/blog/package/9199/post/3-Smoothly-Migrate-your-PHP-Code-using-the-Old-MySQL-extension-to-MySQLi.html 를 참조해 주세요.
(2030년에 이 글을 읽고 PHP classes 웹사이트가 다운되면 언제든지 archive.org에 접속할 수 있습니다.)
업데이트: @crashwap은 GitHub에서 직접 동일한 코드를 얻을 수 있다는 것을 아래 코멘트에 기재하였습니다.조언 감사합니다.@crashwap : - )
dhw의 답변과 비슷하지만 링크를 모든 함수로 글로벌하게 설정하는 것은 다소 어렵기 때문에 걱정할 필요가 없습니다.
설정 파일에서 다음 코드를 사용합니다.
$sv_connection = mysqli_connect($dbhost, $dbuser, $dbpass, $dbname);
$db_connection = mysqli_select_db ($sv_connection, $dbname);
mysqli_set_charset($sv_connection, 'utf8'); //optional
// Check connection
if (mysqli_connect_errno()) {
echo "Failed to connect to MySQL: " . mysqli_connect_error();
exit();
}
function mysqljx_query($q){
global $sv_connection;
return mysqli_query($sv_connection, $q);
}
function mysqljx_fetch_array($r){
return mysqli_fetch_array($r);
}
function mysqljx_fetch_assoc($r){
return mysqli_fetch_assoc($r);
}
function mysqljx_num_rows($r){
return mysqli_num_rows($r);
}
function mysqljx_insert_id(){
global $sv_connection;
return mysqli_insert_id($sv_connection);
}
function mysqljx_real_escape_string($string){
global $sv_connection;
return mysqli_real_escape_string($sv_connection, $string);
}
- "mysql_"이 포함된 php 파일을 검색합니다(그것에 대해 total commander를 사용했습니다 - Alt+F7, "*.php", 텍스트 "mysql_", 검색 시작, 목록 상자 피드 사용).
- 모든 문서를 메모장++에 드래그앤드롭한 후 CTRL+H, 검색 내용: "mysql_", "mysqljx_", "열린 모든 문서에서 모두 바꾸기"를 누릅니다.
위의 기능 이외의 기능이 있다고 생각되는 경우 ("sysql_parray"를 "sysql_parray"를 "sysql_parray"로 교체하고 "sysql_parray_array 등) 다시 검색하면 됩니다.또, 아직 미공개 함수가 있는 경우는, 나머지와 같이 추가할 수 있습니다.
이상입니다
언급URL : https://stackoverflow.com/questions/1390607/how-to-change-mysql-to-mysqli
'programing' 카테고리의 다른 글
phpMyAdmin에서 MySQL 쿼리를 기반으로 CSV 생성 (0) | 2022.11.02 |
---|---|
MySQL - 기존 데이터를 중단하지 않고 데이터베이스 내 기존 열의 varchar 크기를 늘리는 방법 (0) | 2022.11.02 |
JVM 타임존을 올바르게 설정하는 방법 (0) | 2022.11.02 |
Ubuntu 16.04에 MySQL을 설치할 수 없습니다. (0) | 2022.11.02 |
lamda 표현식은 코드 행을 저장하는 것 외에 다른 용도가 있습니까? (0) | 2022.11.01 |