목차
PDO 연결
// php.ini 944행 extension=pdo_mysql 주석해제, 아파치 재시작
$db_host = "localhost"; // host
$db_user = "user"; // user
$db_password = "password"; // password
$db_name = "employees"; // DB name
$db_charset = "utf8mb4"; // charset
$db_dns = "mysql:host=".$db_host.";dbname=".$db_name.";charset=".$db_charset;
$db_option =
array(
PDO::ATTR_EMULATE_PREPARES => false // DB의 Prepared Statement 기능을 사용하도록 설정, true일경우 PBO의 기능을 사용
, PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION // PDO Exception을 Throws하도록 설정
, PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC // 연상배열로 Fetch를 하도록 설정
);
// PDO Class로 DB 연동
$obj_conn = new PDO( $db_dns, $db_user, $db_password, $db_option );
$obj_conn = null; // DB 연결 끊기
SELECT 예제
$sql =
" SELECT "
." emp.emp_no "
." ,sal.salary "
." ,emp.birth_date "
." FROM "
." employees emp "
." INNER JOIN salaries sal "
." ON emp.emp_no = sal.emp_no "
." WHERE "
." ( "
." emp.emp_no = :emp_no1 "
." OR emp.emp_no = :emp_no2 "
." ) "
." AND sal.to_date = DATE(99990101) ";
$arr_prepare =
array(
":emp_no1" => 10001
, ":emp_no2" => 10002
);
$stmt = $obj_conn->prepare( $sql ); // Prepare Statement를 생성
$stmt->execute( $arr_prepare ); // 쿼리 실행
$result = $stmt->fetchAll(); // 쿼리 결과를 fetch
// var_dump( $result );
foreach( $result as $val ) {
echo $val["emp_no"]." : $".$val["salary"].", ".$val["birth_date"]."\n";
}
INSERT 예제
HeidiSQL에서 갱신이 안된다면 DB 쿼리에 FLUSH PRIVILEGES; 입력 후 DB새로고침
$sql =
" INSERT INTO departments( "
." dept_no "
." ,dept_name "
." ) "
." VALUES( "
." :dept_no "
." ,:dept_name "
." ) ";
$arr_prepare =
array (
":dept_no" => "d011"
,":dept_name" => "PHP풀스택"
);
$stmt = $obj_conn->prepare( $sql );
$result = $stmt->execute( $arr_prepare );
$obj_conn->commit();
var_dump( $result );
Github
'PHP > PHP_ex' 카테고리의 다른 글
try-catch (0) | 2023.04.04 |
---|---|
fnc DB connect (0) | 2023.04.03 |
prepared_statement (0) | 2023.04.03 |
DBconnect (0) | 2023.04.01 |
file (0) | 2023.04.01 |