데이터 조회
테이블의 데이터를 조회합니다.
Raw 쿼리를 이용한 목록출력
예제코드: select-raw.php
<?php
require "../../loading.php"; // 오토로딩
// 데이터베이스 설정값
$dbinfo = \jiny\dbinfo();
// 설정값, 생성자 인자값으로 전달합니다.
$db = new \Jiny\Mysql\Connection($dbinfo);
// RawSQL 데이터삽입
$query = "SELECT * FROM `db2020`.`members4`;";
if ($rows = $db->query($query)->fetchObjAll()) {
foreach($rows as $row) {
foreach($row as $key => $value) {
echo $key. "=". $value. "\t";
}
echo "\n";
}
} else {
echo "데이터목록이 없습니다.";
}
|실행결과|
$ php select-01.php
데이터목록이 없습니다.
객체 확장하기
connection 객체는 데이터를 조작할 수 있는 select 객체를 확장합니다. 확장된 select 객체는 다양한 조건의 데이터를 조회할 수 있습니다.
select 객체 얻기
select() 메소드 호출시 객체를 얻을 수 있습니다.
$dataObj = $db->select("테이블명");
all() : 전체 데이터 조회
데이블의 전체 데이터를 조회 합니다.
SELECT *
와 같은 동작결과를 반환합니다.
$dataObj->all();
all 메소드는 테이블의 전체 데이터를 조회 합니다.
예제코드: select-all.php
<?php
require "../../loading.php"; // 오토로딩
// 데이터베이스 설정값
$dbinfo = \jiny\dbinfo();
$db = new \Jiny\Mysql\Connection($dbinfo);
// select 객체 얻기
$dataObj = $db->select("members4");
if ($rows = $dataObj->all()) {
foreach($rows as $row) {
foreach($row as $key => $value) {
echo $key. "=". $value. "\t";
}
echo "\n";
}
} else {
echo "데이터목록이 없습니다.";
}
|출력결과|
$ php select-all.php
id=1 firstname=lee lastname=hojin created_at= updated_at=
id=2 firstname=lee lastname=hojin created_at= updated_at=
컬럼 선택
출력할 컬럼을 선택합니다.
setFields
출력할 필드만 선택할 수 있습니다.
|예제코드| select-fields01.php
<?php
require "../../loading.php"; // 오토로딩
// 데이터베이스 설정값
$dbinfo = \jiny\dbinfo();
// 설정값, 생성자 인자값으로 전달합니다.
$db = new \Jiny\Mysql\Connection($dbinfo);
// 데이터목록
$select = $db->select("members4")->setFields(["id","firstname"]);
if ($rows = $select->fetchObjAll()) {
foreach($rows as $row) {
foreach($row as $key => $value) {
echo $key. "=". $value. "\t";
}
echo "\n";
}
} else {
echo "데이터목록이 없습니다.";
}
|출력결과|
$ php select-fields01.php
id=1 firstname=lee
id=2 firstname=lee
매개변수 전송
별도의 setField 메소드를 호출하지 않고, select 메소드의 2번째 인자로도 컬럼을 선택할 수 있습니다.
|예제코드| select-fields02.php
<?php
require "../../loading.php"; // 오토로딩
// 데이터베이스 설정값
$dbinfo = \jiny\dbinfo();
// 설정값, 생성자 인자값으로 전달합니다.
$db = new \Jiny\Mysql\Connection($dbinfo);
// 데이터목록
if ($rows = $db->select("members4", ["id","firstname"])->fetchObjAll()) {
foreach($rows as $row) {
foreach($row as $key => $value) {
echo $key. "=". $value. "\t";
}
echo "\n";
}
} else {
echo "데이터목록이 없습니다.";
}
쿼리 빌더하기
select
클래스에 설정된 값에 의해서 SQL 쿼리를 빌드합니다.
build()
메소드를 호출합니다.
$db->select("members4", ["id","firstname"])->build();
build()
는 단순한 쿼리만을 자동 생성하여 select 객체 내부에 저장합니다.
생성된 쿼리 문장은 getQuery()
메소드를 통하여 확인을 할 수 있습니다.
이렇게 생성된 쿼리는 run()
메소드를 실행하면, stmt 값을 얻을 수 있습니다.
stmt 값을 통하여 값을 읽어 올 수 있습니다.
$rows = $db->select("members4", ["id","firstname"])->build()->run()->fetchObjAll();
|예제코드| select-03.php select-04.php