PHP

PHP에 MYSQL 연결

isaacagent 2023. 7. 13. 23:25
728x90

COMPOSER로 기본적인 프로젝트를 생성을 합니다.

 

연결을 하려면 설정을 해줘야 될 부분이 두 군데 존재합니다.

1. MYSQL 내 설정

2. 프로젝트 내 설정

 

MYSQL 내 설정

use mysql

mysql을 활성화 해줍니다.

 

CREATE USER 'root'@'본인 외부 ip' IDENTIFIED BY 'root';

그리고 user를 생성해줍니다.

 

GRANT ALL PRIVILEGES ON *.* TO 'root'@'본인 외부 ip' WITH GRANT OPTION;

생성된 root 계정에 권한을 부여해줍니다.

 

select user, host from user;

user가 잘 생성 되었는지 확인을 해줍니다.

 

DB의 설정을 마무리 합니다.

프로젝트 내 설정

자신의 php.ini 파일의 설정을 우선 바꿔줘야 합니다.

 

extension=mysqli

extension=pdo_mysql

의 주석처리를 해제 합니다.

 

 

다음은 .env 파일을 건드려줍니다.

DB_CONNECTION=mysql
DB_HOST="외부 공인 ip"
DB_PORT=3306
DB_DATABASE="내가 만든 데이터베이스명"
DB_USERNAME="내가 설정한 계정명"
DB_PASSWORD="내가 설정한 패스워드"

 

다음은 /config/database.php로 갑니다.

        'mysql' => [
            'driver' => 'mysql',
            'url' => env('DATABASE_URL'),
            'host' => env('DB_HOST', '본인 외부 ip'),
            'port' => env('DB_PORT', '3306'),
            'database' => env('DB_DATABASE', ''),
            'username' => env('DB_USERNAME', ''),
            'password' => env('DB_PASSWORD', ''),
            'unix_socket' => env('DB_SOCKET', ''),
            'charset' => 'utf8mb4',
            'collation' => 'utf8mb4_unicode_ci',
            'prefix' => '',
            'prefix_indexes' => true,
            'strict' => true,
            'engine' => null,
            'options' => extension_loaded('pdo_mysql') ? array_filter([
                PDO::MYSQL_ATTR_SSL_CA => env('MYSQL_ATTR_SSL_CA'),
            ]) : [],
        ],

 

다음은 /public/index.php를 설정합니다.

$mysqli = new mysqli('localhost', 'root', '내가 설정한 패스워드', '디렉토리명');
if($mysqli->connect_errno){
    echo '[MySQL 연결 오류]';
} else {
    echo '[MySQL 연결 성공]';
}
mysqli_close($mysqli);

MYSQL에서 자료를 불러오는데에 성공을 했다면 [연결 성공]이 나타날 것입니다.

 

 

다음은 /app/https/Controllers에 TestController.php파일을 하나 생성을 해줍니다.

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use Illuminate\Support\Facades\DB;

class TestController extends Controller
{
    public function testIndex()
    {
        
        $td = DB::select('select * from 테이블명');
        return view('test', ['td' => $td]);

    }
}

 

 

다음은 /routes/web.php로 갑니다.

<?php
use App\Http\Controllers\TestController;

Route::get('/test', [TestController::class, 'testIndex']);

TestController의 경로를 추가해줍니다.

그리고 /test를 통해서 사이트를 볼 수 있는 경로를 지정해 줍니다.

 

 

 

마지막으로 /resources/views 에 test.blade.php 파일을 만들어줍니다.

<body class="antialiased">
    @foreach($td as $item) 
    NAME : {{ $item->name }} <br> 
    BIRTH : {{ $item->birth }} <br> 
    ID : {{ $item->id }} <br> 
    PW : {{ $item->pw }} <br> 
    EMAIL : {{ $item->email }} <br>
    @endforeach
</body>

테이블 내 attribute들을 호출시켜서 페이지에 나오게 합니다.

 

 

완성된 결과

'PHP' 카테고리의 다른 글

PHP에 CSS 적용시키기  (0) 2023.07.14