使用netbeans连接sqlite和php

时间:2012-06-02 11:19:43

标签: php sqlite netbeans

已更新

我的最新代码如下:

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

错误

sqlite:C:\ New folder \ test.db 致命错误:未捕获异常'PDOException',消息'找不到驱动程序'在C:\ inetpub \ wwwroot \ NetBeans \ PHP&amp; SQLITE.php:20堆栈跟踪:#0 C:\ inetpub \ wwwroot \ NetBeans \ PHP&amp; SQLITE .php(20):PDO-&gt; __ construct('sqlite:C:\ New f ...')#1 {main}在第20行的C:\ inetpub \ wwwroot \ NetBeans \ PHP&amp; SQLITE.php中抛出< / p>

我正在尝试使用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 \ test.db
致命错误:在第18行的C:\ inetpub \ wwwroot \ NetBeans \ PHP&amp; SQLITE.php中调用未定义的函数sqlite_open(),这是“$ handle = sqlite_open($ db); //或die(”无法打开数据库“);”

请告知我哪里做错了?我指定的路径是正确的,但是当我打印出来时,它显示错误的路径。

由于

1 个答案:

答案 0 :(得分:1)

你遇到的一个问题是你escaping(无意中)你的一些路径字符。

正如你的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";

至于问题的其余部分,您需要确保启用了sqlite 2。查看您的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存在于您的扩展文件夹中)。

然而,大多数人会建议您使用PDO driver用于sqlite(以及任何其他数据库),因为它将在不同的数据库中提供更一致的范例(您可以对大多数数据库使用相同的代码)。

<强> [编辑]
我在php manual中发现了一些可能会对您的问题有所了解的评论。

  

似乎包含sqlite数据库的目录必须是   可由Web服务器编写。只使文件可写不会   工作。   

     

不要忘记必须启用“extension = php_pdo_sqlite.dll”   php.ini(如果使用xampp,默认情况下将被禁用)。