라즈베리파이 또는 리눅스 PHP에서 MariaDB 사용하기

안녕하세요. AkibaTV입니다.

라즈베리파이 또는 리눅스의 NPM (Nginx + PHP + MariaDB)을 이용해서

MariaDB에 접속과 Connection, Select, Insert, Update, Delete 사용법을 알아보도록 하겠습니다.

그럼 우선 Visual Studio Code(비주얼 스튜디오 코드)를 실행해 주시기 바랍니다.

실행을 하셨으면 파일명을 php_mariadb.php로 추가를 해주시기 바랍니다.

그러면 PHP를 이용해서 MariaDB에 접속후 Select, Insert, Update, Delete를 해보도록 하겠습니다만

우선 MariaDB에 테이블을 생성을 하도록 하겠습니다.

아직 환경이나 DB가 설치가 안되어 있으신 분은 라즈베리파이 또는 리눅스에서 NPM (Nginx + PHP + MariaDB) 설치하기를 참고해주시기 바랍니다.

image

우선 간단한 테이블을 만들어 보도록 하겠습니다.

phpMyAdmin에 로그인을 해주시기 바랍니다.

akibatv 데이터베이스를 펼치시면 New를 클릭해 주시기 바랍니다.

데이터베이스가 추가가 되어있지 않으신 분들은 JAVA에서 JDBC를 이용해 MariaDB 사용해 보기를 참고해 주시기 바랍니다.

image

1
2
3
4
5
6
7
8
9
10
11
12
# 테이블명, 칼럼, 종류, 사이즈등을 설정을 해주시기 바랍니다.
----------+---------+--------
Name | Type | Size
----------+---------+--------
name | VARCHAR | 10
----------+---------+--------
age | INT | 3
----------+---------+--------
birthday | VARCHAR | 8
----------+---------+--------
site_url | VARCHAR | 100
----------+---------+--------

위와같이 하셨으면 저장을해서 테이블을 추가를 해주시기 바랍니다.

image

그러면 위와같이 test1이란 테이블이 추가가 되었습니다.

그러면 이제 본격적으로 코딩을 시작을 해보도록 하겠습니다.

Visual Studio Code(비주얼 스튜디오 코드)로 돌아오셔서 아래와같이 코딩을 해주시기 바랍니다.

MariaDB의 기반이 MySql로 되어 있기때문에 PHP에서 MariaDB를 사용하실땐 MySql라이브러리를 사용 합니다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<?php
$servername = "localhost";
$username = "akibatv";
$password = "akibatv";
$dbname = "akibatv";

// 데이터베이스 생성
$conn = new mysqli($servername, $username, $password, $dbname);

// 데이터베이스 접속
if ($conn->connect_error) {
die("데이터베이스 접속 실패 : " . $conn->connect_error);
}

echo "데이터베이스 접속 성공";

$conn->close();
?>

image

위와같이 작성을 하셨으면 이제 데이터베이스에 정상적으로 연결이 되는지 확인을 해보도록 하겠습니다.

소스파일을 라즈베리파이의 웹폴더에 올려주시기 바랍니다.

image

소스를 올려주셨으면 웹브라우저를 실행하시고 서버에 올린 PHP파일로 접속을 해주시기 바랍니다.

http://라즈베리파이서버 IP/php_mariadb.php

image

위와같이 나오면 정상적으로 데이터베이스에 접속이 성공한것 입니다.

이제 Select, Insert, Update, Delete를 해보도록 하겠습니다.

파일명을 php_mariadb_insert.php로 추가를 하시고 아래와 같이 코딩을 해주시기 바랍니다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
<?php
$servername = "localhost";
$username = "akibatv";
$password = "akibatv";
$dbname = "akibatv";

// 데이터베이스 생성
$conn = new mysqli($servername, $username, $password, $dbname);

// 데이터베이스 접속
if ($conn->connect_error) {
die("데이터베이스 접속 실패 : " . $conn->connect_error);
}

$sql = " INSERT INTO test1 (name, age, birthday, site_url) ";
$sql .= " VALUES ('AkibaTV', '99', '20200101', 'https://playneko.com/'); ";

if ($conn->query($sql) === TRUE) {
echo "데이터 추가 성공";
} else {
echo "에러 : " . $sql . "<br>" . $conn->error;
}

$conn->close();
?>

image

위와같이 작성을 하셨으면 소스파일을 라즈베리파이의 웹폴더에 올려주시기 바랍니다.

image

소스를 올려주셨으면 웹브라우저를 실행하시고 서버에 올린 PHP파일로 접속을 해주시기 바랍니다.

http://라즈베리파이서버 IP/php_mariadb_insert.php

실행후 데이터베이스 Insert가 되었는지 확인을 해보도록 하겠습니다.

image

데이터 추가 성공이라고 출력이 되었으면 실제로 데이터베이스

정상적으로 입력이 되었는지 확인을 해보도록 하겠습니다.

image

데이터베이스에도 정상적으로 등록이 된것을 확인이 되었습니다.

이제 Select를 해보도록 하겠습니다.

파일명을 php_mariadb_select.php로 추가를 하시고 아래와 같이 코딩을 해주시기 바랍니다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
<?php
$servername = "localhost";
$username = "akibatv";
$password = "akibatv";
$dbname = "akibatv";

// 데이터베이스 생성
$conn = new mysqli($servername, $username, $password, $dbname);

// 데이터베이스 접속
if ($conn->connect_error) {
die("데이터베이스 접속 실패 : " . $conn->connect_error);
}

$sql = " SELECT * FROM test1 ";
$result = $conn->query($sql);

if ($result->num_rows > 0) {
while($row = $result->fetch_assoc()) {
echo $row['name'] . "<br>";
echo $row['age'] . "<br>";
echo $row['birthday'] . "<br>";
echo $row['site_url'] . "<br>";
}
} else {
echo "결과 데이터가 없습니다.";
}

$conn->close();
?>

image

위와같이 작성을 하셨으면 소스파일을 라즈베리파이의 웹폴더에 올려주시기 바랍니다.

image

소스를 올려주셨으면 웹브라우저를 실행하시고 서버에 올린 PHP파일로 접속을 해주시기 바랍니다.

http://라즈베리파이서버 IP/php_mariadb_select.php

실행후 웹브라우저에 Select한 데이터가 출력이 된것을 확인 하실수 있습니다.

image

이제 Update를 해보도록 하겠습니다.

파일명을 php_mariadb_update.php로 추가를 하시고 아래와 같이 코딩을 해주시기 바랍니다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
<?php
$servername = "localhost";
$username = "akibatv";
$password = "akibatv";
$dbname = "akibatv";

// 데이터베이스 생성
$conn = new mysqli($servername, $username, $password, $dbname);

// 데이터베이스 접속
if ($conn->connect_error) {
die("데이터베이스 접속 실패 : " . $conn->connect_error);
}

$sql = " UPDATE test1 SET ";
$sql .= " age = '11', ";
$sql .= " birthday = '19991201', ";
$sql .= " site_url = 'https://akibatv.net/' ";
$sql .= " WHERE name = 'AkibaTV' ";

if ($conn->query($sql) === TRUE) {
echo "데이터 갱신 성공";
} else {
echo "에러 : 데이터 업데이트 실패<br>" . $conn->error;
}

$conn->close();
?>

image

위와같이 작성을 하셨으면 소스파일을 라즈베리파이의 웹폴더에 올려주시기 바랍니다.

image

소스를 올려주셨으면 웹브라우저를 실행하시고 서버에 올린 PHP파일로 접속을 해주시기 바랍니다.

http://라즈베리파이서버 IP/php_mariadb_update.php

실행후 웹브라우저에 데이터 갱신 성공 이라고 출력이 되셨으면 문제없이 갱신이 되었습니다.

image

실제로 데이터베이스 정상적으로 갱신이 되었는지 확인을 해보도록 하겠습니다.

image

데이터베이스에도 정상적으로 갱신이 된것을 확인이 되었습니다.

이제 Delete를 해보도록 하겠습니다.

파일명을 php_mariadb_delete.php로 추가를 하시고 아래와 같이 코딩을 해주시기 바랍니다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
<?php
$servername = "localhost";
$username = "akibatv";
$password = "akibatv";
$dbname = "akibatv";

// 데이터베이스 생성
$conn = new mysqli($servername, $username, $password, $dbname);

// 데이터베이스 접속
if ($conn->connect_error) {
die("데이터베이스 접속 실패 : " . $conn->connect_error);
}

$sql = " DELETE FROM test1 WHERE name = 'AkibaTV' ";

if ($conn->query($sql) === TRUE) {
echo "데이터 삭제 성공";
} else {
echo "에러 : 데이터 삭제 실패<br>" . $conn->error;
}

$conn->close();
?>

image

위와같이 작성을 하셨으면 소스파일을 라즈베리파이의 웹폴더에 올려주시기 바랍니다.

image

소스를 올려주셨으면 웹브라우저를 실행하시고 서버에 올린 PHP파일로 접속을 해주시기 바랍니다.

http://라즈베리파이서버 IP/php_mariadb_delete.php

실행후 웹브라우저에 데이터 삭제 성공 이라고 출력이 되셨으면 문제없이 삭제가 된것입니다.

image

실제로 데이터베이스 정상적으로 삭제가 되었는지 확인을 해보도록 하겠습니다.

image

데이터베이스에도 정상적으로 삭제가 된것을 확인이 되었습니다.

이렇게해서 PHP로 MariaDB의 Select, Insert, Update, Delete를 해보았습니다.