PDO(PHP Data Objects)는 PHP에서 DB에 안전하고 일관되게 접속할 수 있도록 도와주는 객체 지향 방식의 DB 연결 인터페이스입니다.
MySQL, PostgreSQL, SQLite 등 여러 DB를 동일한 방식으로 다룰 수 있습니다.

 

✅ 기본 사용 예

$pdo = new PDO("mysql:host=localhost;dbname=test", "user", "pass", [
    PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
    PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC
]);

$stmt = $pdo->prepare("SELECT * FROM users WHERE id = :id");
$stmt->execute(['id' => 1]);
$user = $stmt->fetch();

 

 

✅ 리스트 가져오기

$pdo = new PDO("mysql:host=localhost;dbname=test", "user", "pass", [
    PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
    PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC
]);

$stmt = $pdo->prepare("SELECT * FROM users LIMIT 10");
$stmt->execute();
$users = $stmt->fetchAll();

 

 

✅ 아이템 넣기

    $sql  = 'INSERT INTO users (name, email) VALUES (:name, :email)';
    $stmt = $pdo->prepare($sql);

    // 2) 실행
    $stmt->execute([
        ':name'  => $name,   // ex) "Alice"
        ':email' => $email,  // ex) "alice@example.com"
    ]);

    // 3) 결과
    $newId = $pdo->lastInsertId();

 

 

✅ 업데이트

$sql  = 'UPDATE users SET name = :name, email = :email WHERE id = :id';
    $stmt = $pdo->prepare($sql);

    // 2) 실행
    $stmt->execute([
        ':name'  => $name,   // 예: "Bob"
        ':email' => $email,  // 예: "bob@example.com"
        ':id'    => $id      // 예: 1
    ]);

    // 3) 결과
    $affected = $stmt->rowCount(); // 영향을 받은 행 수

 

사이트에서 다운로드 하는 방법도 있지만 개인적으로는 제일 추천하는 방법입니다.

yt-dlp 를 설치해서 직접 다운로드 할수있습니다.

 

✅ Mac 또는 Linux 기준 설치 방법

1. 가장 간단한 설치 (권장)

 
curl -L https://github.com/yt-dlp/yt-dlp/releases/latest/download/yt-dlp -o /usr/local/bin/yt-dlp
chmod a+rx /usr/local/bin/yt-dlp
yt-dlp --version

※ Permission denied 에러가 나면 앞에 sudo 붙여서 실행하세요.


2. Python이 설치되어 있다면 pip로 설치

pip install -U yt-dlp
✅ 설치 후에도 yt-dlp 명령어가 안 된다면 아래처럼 실행해보세요:

python3 -m yt_dlp [옵션]
python3 -m yt_dlp https://www.youtube.com/watch?v=abc123

⚠️ pip install로 설치한 경우, ~/.local/bin 또는 venv/bin에 설치될 수 있어 경로 설정이 필요할 수 있습니다.

 

 

 

✅ Windows 사용자라면

  1. yt-dlp 공식 페이지에서 yt-dlp.exe 다운로드
  2. 다운로드한 .exe 파일을 C:\Windows 또는 C:\Users\사용자명\AppData\Local\Microsoft\WindowsApps 등에 넣으면 전역 실행 가능
  3. 이후 명령 프롬프트에서 아래처럼 실행
yt-dlp https://www.youtube.com/watch?v=abc123

 

 

 

✅ 사용방법

 

yt-dlp -F <URL>

 

우선 내가 다운받을 유튜브의 ID 확인을 합니다.

확인하시면 아래와 같이 id  가 보여집니다.

 

 

 

HTTPS 직접 방식의 avc1.640028 코덱을 사용한 파일인 137과 가장 대중적인 m4a 오디오인 140을 설정하겠습니다.

 

yt-dlp -f "137+140" \
  --download-sections "*00:31:34-00:33:13" \
  --merge-output-format mp4 \
  -o "%(title)s_21m20s-22m30s.%(ext)s" \
  "https://www.youtube.com/watch?v=4m3NhwXpZnI"

 

영상파일은 아이디 137과 음성파일 140을 병합하고 31분 34초 영역부터 33분 13초 영역까지 다운로드 받을수있습니다.

 

 증상

  • phpMyAdmin 로그인 후 아무 메시지 없이 다시 로그인 화면으로 돌아감
  • Safari 등 여러 브라우저에서도 동일 증상
  • MySQL은 SSH에서는 정상 접속됨

 

해결방법

 

phpMyAdmin 폴더로 이동.

config.inc.php 파일을 열고 아래 내용 수정.

$cfg['Servers'][$i]['auth_type'] = 'cookie';
$cfg['Servers'][$i]['AllowNoPassword'] = false; //true 로 되어있는경우 이 조합은 때때로 인증 충돌을 일으켜 로그인 세션을 유지하지 못하고 → 다시 로그인 화면으로 돌아가는 루프 현상이 발생합니다.

 

 

apache2 재시작

 

sudo systemctl restart apache2

'개발 > PHP' 카테고리의 다른 글

PHP PDO 사용 방법  (0) 2025.07.01
PHP 에러 출력  (0) 2022.04.14
php include php 외부 php 파일 불러오기  (0) 2015.04.30
[PHP] 자주 사용하는 서버 변수.  (0) 2011.09.20
[PHP]file_get_contents() 함수 대체하기.  (9) 2011.07.11

+ Recent posts