728x90
반응형
목차
php를 통해 mysql의 데이터에 접근하여 데이터를 추가하고 사용하는 방법을 알아보자
여러가지 방법이 있지만 나는 mysqli를 이용해서 진행했다.
먼저 데이터 베이스를 만들어주자 다음은 그에 대한 코드이다.
city_database.php
<?php
//connect to MySQL
$db = mysqli_connect('localhost', 'root', '') or die ('Unable to connect. Check your connection parameters.');
// 서버 ip주소 사용자 이름 비밀번호
$query = 'CREATE DATABASE IF NOT EXISTS citysite';
//이미 테이터 베이스가 존재할 경우 새로운 데이터 생성 x
mysqli_query($db, $query) or die(mysqli_error($db));
//연결이 안되었다면 연결 객체($db)에서 발생한 마지막 오류에 대한 설명을 반환합니다. (console.log와 비슷한 느낌)
mysqli_select_db($db, 'citysite') or die(mysqli_error($db));
//이 함수는 MySQL 서버에 연결된 후에 특정 데이터베이스를 선택하기 위해 사용됩니다.
//즉, 이 함수를 사용하여 데이터베이스에 대한 작업을 수행하기 위해 연결된 MySQL 데이터베이스를 선택할 수 있습니다.
$query = 'CREATE TABLE mytable (
SID INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,
S_Name VARCHAR(255) NOT NULL,
S_Gender ENUM("Male", "Female", "Other") NOT NULL DEFAULT "Other",
S_City VARCHAR(255) NOT NULL, we
S_Street VARCHAR(255) NOT NULL,
S_Population INTEGER UNSIGNED NOT NULL DEFAULT 0,
City_Area DECIMAL(10, 2) NOT NULL DEFAULT 0, -- 도시의 면적 (제곱킬로미터)
City_Country VARCHAR(255) NOT NULL, -- 도시의 국가
City_Elevation DECIMAL(10, 2) NOT NULL DEFAULT 0, -- 도시의 해발고도 (미터)
City_Founded DATE NOT NULL, -- 도시의 설립일
City_GDP INTEGER UNSIGNED NOT NULL DEFAULT 0,
PRIMARY KEY (SID)
)
ENGINE=MyISAM';
//PRIMARY KEY (movie_id): 이 부분은 movie 테이블의 기본 키를 정의합니다. 기본 키는 각 행을 고유하게 식별하는 열(또는 열의 집합)입니다.
//movie 테이블에 대한 인덱스를 정의합니다. 인덱스는 데이터베이스의 검색 속도를 향상시키기 위해 사용됩니다.
//여기서 movie_type과 movie_year 두 개의 열로 구성된 인덱스를 정의합니다. 이 인덱스는 movie_type과 movie_year 열의 값에 기반하여 테이블의 행을 빠르게 찾을 수 있도록 도와줍니다.
//이는 주로 검색 및 정렬 작업을 빠르게 하기 위해 사용됩니다.
mysqli_query($db, $query) or die(mysqli_error($db));
echo 'City database successfully created!';
?>
페이지에서 데이터를 추가하고 데이터 테이블을 출력하는 방법
<!DOCTYPE html>
<html lang='en'>
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
</head>
<body>
<form action="" method="post">
<h1>User Data Entry</h1>
<p>
<label for="name">Name:</label>
<input type="text" name="name" id="user">
</p>
<p>
<input type="radio" id="Male" name="gender" value="Male" checked />
<label for="male">Male</label>
<input type="radio" id="Female" name="gender" value="Female" />
<label for="female">Female</label>
</p>
<p>
<label for="city">City:</label>
<select name="city" id="city">
<option value="youngin">youngin</option>
<option value="seoul">seoul</option>
<option value="busan">busan</option>
<option value="junju">junju</option>
<option value="dague">dague</option>
<option value="jeju">jeju</option>
</select>
</p>
<p>
<label for="country">Country:</label>
<select name="country" id="country">
<option value="Korea">Korea</option>
<option value="America">America</option>
<option value="England">England</option>
<option value="japan">Japan</option>
<option value="Africa">Africa</option>
<option value="China">China</option>
</select>
</p>
<p>
<input type="submit" name="submit" value="Submit">
</p>
</form>
<?php
if(isset($_POST['submit'])) { // POST 요청으로 전송된 데이터 중에서 'submit'이라는 이름의 변수가 있는지를 확인합니다.
$name = $_POST['name'];
$city = $_POST['city'];
$gender = $_POST['gender'];
$country = $_POST['country'];
$servername = 'localhost';
$username = 'root';
$password = '';
$dbname = 'citysite';
// Create connection
$db = new mysqli($servername, $username, $password, $dbname) or die("Connection failed:");
// 데이터를 mysqli에 삽입합니다.
$query = "INSERT INTO mytable (S_Name, S_Gender, S_City, City_Country) VALUES ('$name', '$gender', '$city', '$country')";
mysqli_query($db, $query) or die(mysqli_error($db));
}
?>
<h2>Retrieve Data from the "mytestdb" Database</h2>
<form method="post" action="">
<label for="selected_city">Select a city:</label>
<select id="selected_city" name="selected_city">
<option value="" disabled selected>Select a city</option>
<option value="youngin">youngin</option>
<option value="seoul">seoul</option>
<option value="busan">busan</option>
<option value="junju">junju</option>
<option value="dague">dague</option>
<option value="jeju">jeju</option>
</select>
<input type="submit" name="retrieve" value="Show">
</form>
<?php
if(isset($_POST['retrieve']) && isset($_POST['selected_city'])) {
$selected_city = $_POST['selected_city'];
$servername = 'localhost';
$username = 'root';
$password = '';
$dbname = 'citysite';
// mysqli 연결
$db = new mysqli($servername, $username, $password, $dbname) or die("Connection failed:");
// 데이터베이스를 선택된 도시로 부터 받아온다.
$query = "SELECT SID, S_Name, S_Gender, S_City, City_Country FROM mytable WHERE S_City = '$selected_city' ORDER BY SID";
$result = mysqli_query($db, $query) or die(mysqli_error($db));
//데이터 테이블의 생성
echo "<h3>User Data for $selected_city</h3>";
echo "<table border='1'>";
echo "<tr><th>SID</th><th>Name</th><th>gender</th><th>City</th><th>Country</th></tr>";
if ($result->num_rows > 0) {
while($row = mysqli_fetch_array($result)) {
echo "<tr><td>" . $row["SID"] . "</td><td>" . $row["S_Name"] . "</td><td>" . $row["S_Gender"] . "</td><td>". $row["S_City"] . "</td><td>". $row["City_Country"] ."</td></tr>";
}
} else {
echo "<tr><td colspan='3'>No data available</td></tr>";
}
echo "</table>";
$db->close();
}
?>
</body>
</html>
직접 코드를 짜서 데이터에 넣는 방법
<?php
// connect to MySQL
$db = mysqli_connect('localhost', 'root', '') or die ('Unable to connect. Check your connection parameters.');
// make sure you're using the correct database
mysqli_select_db($db, 'citysite') or die(mysqli_error($db));
// insert data into the mytable table
$query = 'INSERT INTO mytable
(SID, S_Name, S_Gender, S_City, S_Street, S_Population, City_Area, City_Country, City_Elevation, City_Founded, City_GDP)
VALUES
(1,"huaksu", "male","youngin", "singal", 100000, 1000.5, "korea", 100.1, "2001-01-01", 1234),
(2, "minsu", "male", "seoul", "sadang", 100000, 1020.5, "korea", 100.1, "1970-01-01", 1234123),
(3, "younhee", "female", "jeju", "dongu", 100000, 1000.5, "korea", 100.1, "1940-01-01", 12341233)';
mysqli_select_db($db, 'citysite') or die(mysqli_error($db));
echo 'CityData inserted successfully!'; //성공적으로 데이터를 삽입했을 경우 출력
?>
반응형
'코딩 정보 > web' 카테고리의 다른 글
브라우저의 랜더링에 대해 자세히 알아보자 (1) | 2024.09.14 |
---|---|
[프로젝트] php로 로그인 페이지와 회원가입 페이지를 만들어보자 (0) | 2024.05.14 |
[React] React-Query 라이브러리가 무엇인지 알아보자 (1) | 2024.05.09 |
MSW 정의 및 기본 세팅 방법 (0) | 2024.05.06 |
NodeJs params 와 query 개념 및 api간단하게 구현 해보기 (0) | 2024.05.06 |