2011-04-01 2 views
5

PHP PDO를 사용하여 데이터베이스를 연결하는 데 많은 노력을했습니다. 나는 많은 샘플을 가지고 있는데, 나는 무엇이 문제인지 확신 할 수 없다.PHP를 사용하여 sqlite 데이터베이스에 연결하는 방법은 무엇입니까?

아래 내가 연결을 열 수있는 방법을 많이 시도 내 코드

<?php 
    try 
    { 
     // $db = new PDO('sqlite:sampleDB.db3'); 
     // $db = new SQLiteDatabase('sampleDB.sqlite', 0666, $error); 
     $db = new PDO('sqlite:sampleDB.sqlite'); 
    } 
    catch(PDOException $e) 
    { 
     echo $e->getMessage(); 
    } 
?> 

입니다. 제발 올바른 방법을 말해주세요 ...

+0

오류/메시지가 있습니까? –

+0

어떤 오류가 발생합니까? – SergeS

+0

나 또는 $ db = new PDO ('sqlite : sampleDB.sqlite') 다음에 별이 있습니다. 선 ? 그렇지 않다면 구문 분석에 실패 할 것입니다 ... – yent

답변

1

먼저 PHP를 SQLite에 연결하도록 설정했는지 확인하십시오. phpinfo()을 사용하여 SQLite 지원이 활성화되어 있는지 확인하십시오.

다음으로 SQLite 데이터베이스에 연결하고 쿼리 할 때 적절한 구문을 사용하는 것이 좋습니다. 예 : PHP Manual for sqllite.

<?php 

    if ($db = sqlite_open('sampleDB', 0666, $sqliteerror)) { 
     $result = sqlite_query($db, 'select bar from foo'); 
     var_dump(sqlite_fetch_array($result)); 
    } else { 
     die($sqliteerror); 
    } 

?> 
+0

나는 메모리에 데이터베이스를 연결/생성하려고 시도했다. 그것은 작동합니다. $ db = new PDO ("sqlite :: memory"); – ayathas

+0

동일한 코드가 실행되었습니다. '데이터베이스를 열 수 없습니다'라는 오류 메시지가 나타납니다. – ayathas

+0

phpinfo()를 확인하여 SQLLite 지원이 활성화되어 있는지 확인 했습니까? –

5

나는 PDO 드라이버를 포기하고 같은 이유로 대신 sqlite3 모듈을 사용했습니다. sqlite3를 모듈로

:

class DB extends SQLite3 
{ 
     function __construct($file) 
     { 
      $this->open($file); 
     } 
} 

$db = new DB('sampleDB.sqlite'); 

나는 그것이 당신의 문제에 대한 해결책이 아니다 알아,하지만 아무것도 작동하지 않는 경우,이 유용 할 수 있습니다.

+0

이 연결 유형을 사용하여 데이터베이스를 어떻게 쿼리합니까? – ST3

+0

http://php.net/manual/en/book.sqlite3.php – petermolnar

1

sql 파일이있는 디렉토리는 서버 쓰기가 가능해야합니다. SQLite 용으로 별도의 디렉토리를 만들고 적절한 액세스 권한을 부여하십시오. 유닉스에서는 chmod 777 dirname을 실행하면됩니다. 또한 DSN을 'sqlite:dirname/sampleDB.sqlite'으로 수정하십시오.

+0

여전히 오류 메시지가 표시됩니다. SQLSTATE [HY000] [14] 데이터베이스 파일을 열 수 없습니다. – ayathas

+0

이것은 내 코드를 변경 한 방법입니다. $ dbh = 새로운 PDO ('sqlite : myDir/sampleDB.sqlite'); – ayathas

관련 문제