2010-03-11 5 views
20

PDO에 대해 조금 배우려는 시도가 this tutorial입니다. 그것은 코드의 다음 코드가 있습니다PDO : 메모리에 SQLite 데이터베이스를 만들 수 없습니다.

<?php 

try 
{ 
    $db = new PDO('sqlite::memory'); 
    echo "SQLite created in memory."; 

} 
catch(PDOException $e) 
{ 
    echo $e->getMessage(); 
} 

나는이 프로그램을 실행할 때 나는 다음과 같은 예외 메시지가 :

SQLSTATE [HY000] [14] 데이터베이스 파일을 열 수 없습니다

그게 무슨 뜻 이죠? 어떻게 작동시킬 수 있습니까? MySQL 데이터베이스와 일반 SQLite 데이터베이스 파일에 연결할 수 있습니다. 그래서 나는 적어도 무언가가 작동하고 있다는 것을 알고 있습니다 ...

저는 아파치 2.2.11과 PHP 5.3.0 (최신 WampServer 설치)을 사용하는 Windows 7 64 비트입니다. phpinfo()는 SQLite 라이브러리 3.6.15가 활성화 된 pdo_sqlite를 가지고 있다고보고합니다.

답변

41

당신은 후행 :이없는

$db = new PDO('sqlite::memory:'); 

작성해야합니다.


는 PDO_SQLITE 데이터 소스 이름 (DSN)는 다음 요소들로 구성되어 :

DSN 접두사 sqlite가있다.

  • 디스크의 데이터베이스에 액세스하려면 DSN 접두어에 절대 경로를 추가하십시오.

  • 메모리에 데이터베이스를 만들려면 : 메모리 :을 DSN 접두사에 추가하십시오.

Documentation

+0

믿을 수없는 ... 하하. 고마워 – Svish

2

@ win 권한이 확실하지 않지만 * nix에서 SQLite는 temp 파일에 대한 제한된 데이터베이스 파일에 대한 쓰기 권한을 필요로합니다.

+0

알고도 좋은! – Svish

관련 문제