2012-06-02 3 views
0

연결이 sqlite와 PHP를 사용하여 넷빈즈

내 최신 코드를 업데이트 :

$file ="sqlite:C:\New folder\\test.db"; 
echo $file; 
$handle = new PDO($file) or die("Could not open database"); 

오류

SQLite는 : C : 새로운 폴더 est.db 치명적인 오류 \ C : \ inetpub \ wwwroot \ NetBeans \ PHP &에서 SQLite.php : 20 스택 추적 : # 0 C : \ inetpub \ wwwroot \ NetBeans \ PHP & C : \ inetpub \ wwwroot \ NetBeans \ PHP에 던져진 # 1 {main} SQLite.php (20) : PDO -> __ construct ('sqlite : C : \ New f ...') & SQLITE.php on line 20

그러나 PDO 드라이버를 사용하려고하는데 오류가 내 확장 프로그램의 php 폴더에있을 때 드라이버를 찾을 수 없다는 메시지를 계속 표시합니다. 나는 지금 내 지혜에있어.

SQLite 버전 3과 PHP 버전 5.4.3을 사용하고 있습니다.


나는 이미 내 R/W 폴더 안에 데이터베이스 파일을 배치하지만 치명적인 오류 : 정의되지 않은 함수 sqlite_open에()를 호출. 난 이미 소스에 대한 웹에 대한 연구했지만 내 디렉토리 경로는 여전히 이상한 오류를 반환합니다 (미안하지만, 너무 멍청한데, 처음 학습).

내 코드는 다음과 같이

$db ="C:\New folder\test.db"; 
Test to print my directory path of the database. 
echo $db; 
$handle = sqlite_open($db); //or die("Could not open database"); 

디버그 결과

C : 새로운 폴더 est.db \
치명적인 오류 : C에서 정의되지 않은 함수 sqlite_open()로 전화 : \을 Inetpub \ wwwroot에 \ NetBeans \ PHP & "$ handle = sqlite_open ($ db); // 또는 die ("데이터베이스를 열 수 없습니다. "); 줄 18에있는 SQLITE.php

어디에서 잘못했는지 조언 해주세요. 내가 지정한 경로는 정확했지만 인쇄 할 때 잘못된 경로가 표시됩니다.

감사합니다 당신이

+0

기능이 정의되지 않은 경우 PHP 설치에는 해당 확장이 없습니다. 또한 PDO를 사용하십시오. –

+0

이 설명서에서는 설치에 대해 설명합니다. http://zetcode.com/databases/sqlitephptutorial/. 테레 스코가 말했듯이 그것은 당신의 문제 일 수 있습니다. – Hassan

답변

1

하나의 문제는 경로의 일부 문자는 escaping (실수) 때문이다.

var_dump가 표시하는대로.

C:\New folder est.db 

변화 PHP 시도하고 문자열을

$db ='C:\New folder\test.db'; 

을 분석하고 믿거 나 말거나되지 않도록

$db ="C:\New folder\\test.db"; 

또는 작은 따옴표로 바로 넣어 경로로 $ DB 변수 정의 대부분의 경우 유닉스 경로가 작동합니다 :

$db ="C:/New folder/test.db"; 

문제의 나머지 부분에 대해서는 sqlite 2를 활성화해야합니다.당신의 PHP 정보를보고 당신이 경우 섹션처럼 확인 : (라인

extension=php_sqlite.dll 

이 주석 및 존재 확인 php.ini 파일에서

SQLite 
SQLite support enabled 
PECL Module version  2.0-dev $Id: sqlite.c 306939 2011-01-01 02:19:59Z felipe $ 
SQLite Library 2.8.17 
SQLite Encoding  iso8859 

없는 경우, 그리고 .DLL이 존재 확장 폴더에 있음).

그러나 대부분의 사람들은 sqlite (및 다른 데이터베이스)에 대해 PDO driver을 사용하는 것이 좋습니다. 다른 데이터베이스에서 일관된 패러다임을 제공하기 때문에 대부분의 데이터베이스에서 동일한 코드를 사용할 수 있습니다.

[편집]
나는 당신의 문제에 도움이 되거 수 php manual에서 몇 가지 의견을 냈다.

It seems that the directory that contains your sqlite database must be writeable by the web server. Making just the file writeable won't work.
and

Don't forget "extension=php_pdo_sqlite.dll" has to be enabled in php.ini (if you use xampp is will be disabled by default) .

+0

안녕하세요, Rocky 님, 이미 내 C : \ Windows에있는 php.ini에 확장 프로그램을 추가했습니다. 그러나, 그 확장을 추가하면 fastcgimodule이 예기치 않게 종료됩니다. 그리고 내가 읽은 바에 따르면, 나는 PDO 드라이버가 자동으로 활성화되어야한다고 언급했다. – JLearner

+0

알았어요. 내가 다운로드 한 PHP 파일이 있습니다. 나는 그것을 대체하고 마침내 작동합니다! 모두에게 감사드립니다! – JLearner