>

Prague Practitioner 용 Laracast를 수행하고 있으며 PDO PHP 기능을 사용하여 로컬 SQL 데이터베이스에 연결할 수 없습니다.

데이터베이스에 대한 MySQL Workbench의 모든 설정을 검토했습니다. 코드의 데이터베이스 이름이 정확합니다. 포트가 정확합니다. 로컬 호스트 IP가 정확합니다.

try {
    $pdo = new PDO('mysql:host 127.0.0.1:3306;dbname=Test', 'root', '');
} catch (PDOException $e) {
    die('Could Not Connect');
};

이 기능이 작동하고 SQL 데이터베이스 테이블에서 정보를 가져올 수있을 것으로 기대했습니다. 그러나 계속 예외가 발생하고 다이 명령 프롬프트 만 표시됩니다.

또한 MySQL 워크 벤치를 통해 MySQL 서버가 실행되고 있음을 확인했습니다.

이 명령이 제대로 연결 되려면 무엇이 바뀌어야합니까?

  • 답변 # 1

    먼저, 실제 오류를 조사해야합니다. "연결할 수 없습니다"메시지는 문제를 진단하는 데 도움이되지 않지만 실제 예외는 발생합니다. 이상적으로는보다 정확한 오류 처리 코드가 있습니다. 그러나 최소한, 당신은 var_dump($e) 할 수 있습니다  당신의 catch 내부  차단합니다.

    즉, 연결 문자열 (DSN) 구문이 잘못되었습니다. 당신은 = 가 없습니다  포트를 잘못 지정했습니다.

    $pdo = new PDO('mysql:host=127.0.0.1;port=3306;dbname=Test', 'root', '');
    //                        ^         ^ you need ;port=, not just a colon
    //                        |
    //                        should be =, not a space
    
    

    다른 메모 :

    귀하의 루트 계정에 암호가 있는지는 확실하지 않습니다. 그렇다면여기에 게시하지 마십시오. 해당 계정에없는암호가 있으면 즉시 암호를 설정하십시오.

    어쨌든 루트로 연결해서는 안됩니다. 다른 사용자 계정을 설정하십시오.

    당신은 ; 가 필요하지 않습니다  마지막 } 후 .

관련 자료

  • 이전 c# - 이미지를 바이트 배열로 변환하는 방법
  • 다음 algorithm - 속도 제한 파이썬 데코레이터