English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
이 튜토리얼에서는 PHP를 사용하여 특정 조건에 따라 MySQL 데이터베이스 테이블에서 기록을 읽는 방법을 배웁니다.
WHERE이 절은 특정 조건을 만족하는 기록만 추출하는 데 사용됩니다。
WHERE 절의 기본 문법은 다음과 같이 제공할 수 있습니다:
SELECT column_name(s) FROM table_name WHERE column_name operator value
SELECT 문의 WHERE 절을 사용하여 SQL 쿼리를 수행하고, 그 결과를 PHP mysqli_query() 함수에 전달하여 필터된 데이터를 얻습니다.
추정된 demo 데이터베이스의 persons 테이블에 다음과 같은 기록이 있습니다:
+----+------------+-----------+----------------------+ | id | first_name | last_name | email | +----+------------+-----------+----------------------+ | 1 | Peter | Parker | [email protected] | | 2 | John | Rambo | [email protected] | | 3 | Clark | Kent | [email protected] | | 4 | John | Carter | [email protected] | | 5 | Harry | Potter | [email protected] | +----+------------+-----------+----------------------+
아래 PHP 코드는persons테이블에서 first_name = 'john'인 모든 행을 읽습니다:
<?php /* MySQL 서버 연결을 시도합니다. MySQL을 실행 중인 것으로 가정합니다. 기본 설정된 서버(암호가 없는 사용자 "root") */ $link = mysqli_connect("localhost", "root", "", "demo"); //연결 확인 if($link === false){ die("에러: 연결할 수 없습니다. " . mysqli_connect_error()); } //查询执行尝试 $sql = "SELECT * FROM persons WHERE first_name='john'"; if($result = mysqli_query($link, $sql)){ if(mysqli_num_rows($result) > 0){ echo "<table>"; echo "<tr>"; echo "<th>id</th>"; echo "<th>first_name</th>"; echo "<th>last_name</th>"; echo "<th>email</th>"; echo "</tr>"; while($row = mysqli_fetch_array($result)){ echo "<tr>"; echo "<td>" . $row['id'] . "</td>"; echo "<td>" . $row['first_name'] . "</td>"; echo "<td>" . $row['last_name'] . "</td>"; echo "<td>" . $row['email'] . "</td>"; echo "</tr>"; } echo "</table>"; // 결과 집합을 닫습니다. mysqli_free_result($result); } else{ echo "找不到与您的查询匹配的记录。"; } } else{ echo "에러: 실행할 수 없습니다. $sql" . mysqli_error($link); } //连接关闭 mysqli_close($link); ?>
<?php /* MySQL 서버 연결을 시도합니다. MySQL을 실행 중인 것으로 가정합니다. 기본 설정된 서버(암호가 없는 사용자 "root") */ $mysqli = new mysqli("localhost", "root", "", "demo"); //연결 확인 if($mysqli === false){ die("에러: 연결할 수 없습니다. " . $mysqli->connect_error); } //查询执行尝试 $sql = "SELECT * FROM persons WHERE first_name='john'"; if($result = $mysqli->query($sql){{ if($result->num_rows > 0){{ echo "<table>"; echo "<tr>"; echo "<th>id</th>"; echo "<th>first_name</th>"; echo "<th>last_name</th>"; echo "<th>email</th>"; echo "</tr>"; while($row = $result->fetch_array(){{ echo "<tr>"; echo "<td>" . $row['id'] . "</td>"; echo "<td>" . $row['first_name'] . "</td>"; echo "<td>" . $row['last_name'] . "</td>"; echo "<td>" . $row['email'] . "</td>"; echo "</tr>"; } echo "</table>"; //结果集释放 $result->free(); } else{ echo "找不到与您的查询匹配的记录。"; } } else{ echo "에러: 실행할 수 없습니다. $sql" . $mysqli->error; } //连接关闭 $mysqli->close(); ?>
<?php /* MySQL 서버 연결을 시도합니다. MySQL을 실행 중인 것으로 가정합니다. 기본 설정된 서버(암호가 없는 사용자 "root") */ try{ $pdo = new PDO("mysql:host=localhost;dbname=demo", "root", \ //PDO 오류 모드를 예외로 설정 $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); } catch(PDOException $e){ die("오류: 연결 불가능. " . $e->getMessage()); } //查询执行尝试 try{ $sql = "SELECT * FROM persons WHERE first_name='john'"; $result = $pdo->query($sql); if($result->rowCount() > 0){ echo "<table>"; echo "<tr>"; echo "<th>id</th>"; echo "<th>first_name</th>"; echo "<th>last_name</th>"; echo "<th>email</th>"; echo "</tr>"; while($row = $result->fetch()); echo "<tr>"; echo "<td>" . $row['id'] . "</td>"; echo "<td>" . $row['first_name'] . "</td>"; echo "<td>" . $row['last_name'] . "</td>"; echo "<td>" . $row['email'] . "</td>"; echo "</tr>"; } echo "</table>"; //结果集释放 unset($result); } else{ echo "找不到与您的查询匹配的记录。"; } } catch(PDOException $e){ die("오류: $sql 실행 불가능. " . $e->getMessage()); } //连接关闭 unset($pdo); ?>
过滤后,结果集将如下所示:
+----+------------+-----------+---------------------+ | id | first_name | last_name | email | +----+------------+-----------+---------------------+ | 2 | John | Rambo | [email protected] | | 4 | John | Carter | [email protected] | +----+------------+-----------+---------------------+