0

更新しました

私の最新のコードは次のとおりです。

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

エラー

sqlite:C:\ New folder est.db致命的なエラー:キャッチされない例外'PDOException'とメッセージ'could not find driver' in C:\ inetpub \ wwwroot \ NetBeans \ PHP&SQLITE.php:20 Stack trace:#0 C:\ inetpub \ wwwroot \ NetBeans \ PHP&SQLITE.php(20):PDO-> __construct('sqlite:C:\ New f ...')#1 {main}がC:\ inetpub \ wwwroot \ NetBeans \ PHP&SQLITE.phpにスローされます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:\ New folder est.db
致命的なエラー:18行目のC:\ inetpub \ wwwroot \ NetBeans \ PHP&SQLITE.phpの未定義関数sqlite_open()を呼び出します。これは "$ handle = sqlite_open($ db);//またはdieです。 ("データベースを開けませんでした"); "

どこで間違ったことをしたのか教えてください。指定したパスは正しいのですが、印刷すると間違ったパスが表示されます。

ありがとう

4

1 に答える 1

1

あなたが抱えている問題の1つは、パス文字の一部を(うっかりして)エスケープしていることです。

var_dumpが示すように。

C:\New folder est.db

$db変数の定義を次のように変更します

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

または、パスを一重引用符で囲んで、PHPが文字列を解析しようとしないようにします

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

信じられないかもしれませんが、ほとんどの場合、UNIXパスが機能します。

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

問題の残りの部分については、sqlite2が有効になっていることを確認する必要があります。PHP情報を表示し、次のようなセクションがあるかどうかを確認します。

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 

そうでない場合は、php.iniで次の行を確認してください

extension=php_sqlite.dll

コメントがなく、存在します(.dllは拡張フォルダーに存在します)。

ただし、ほとんどの人は、sqlite(およびその他のデータベース)にPDOドライバーを使用することをお勧めします。これにより、さまざまなデータベース間でより一貫性のあるパラダイムが提供されます(ほとんどのデータベースで同じコードを使用できます)。

[編集]あなたの問題に光を当てるかもしれない
いくつかのコメントをphpマニュアルで見つけました。

sqliteデータベースを含むディレクトリはWebサーバーで書き込み可能でなければならないようです。ファイルを書き込み可能にするだけでは機能しません。

php.iniで「extension=php_pdo_sqlite.dll」を有効にする必要があることを忘れないでください(xamppを使用する場合はデフォルトで無効になります)。

于 2012-06-02T13:39:48.907 に答える