在PHP中读取SQLite数据库?(使用sencha touch sqlite制作)

在PHP中读取SQLite数据库?(使用sencha touch sqlite制作),php,javascript,sqlite,sencha-touch,Php,Javascript,Sqlite,Sencha Touch,我使用senchatouch()中的SQLite端口创建了一个SQLite数据库,数据库名为“cars”,不带引号,其中的表称为“cars\u table”,不带引号 我能够用javascript很好地读/写/更新SQLite表,当我查看google chrome上的“Cookies/Local Storage”页面时,我发现我的域下的数据库设置了正确的数据库名称 然而,我完全无法从PHP读取或写入它。我有PHP5.3,在检查phpinfo()时,我已经准备好了SQLite 有什么想法吗 我的基

我使用senchatouch()中的SQLite端口创建了一个SQLite数据库,数据库名为“cars”,不带引号,其中的表称为“cars\u table”,不带引号

我能够用javascript很好地读/写/更新SQLite表,当我查看google chrome上的“Cookies/Local Storage”页面时,我发现我的域下的数据库设置了正确的数据库名称

然而,我完全无法从PHP读取或写入它。我有PHP5.3,在检查phpinfo()时,我已经准备好了SQLite

有什么想法吗

我的基本PHP代码是:

$dbhandle = sqlite_open('cars');
$query = sqlite_query($dbhandle, 'SELECT * FROM cars_table');
$rows = sqlite_num_rows($query);
echo $rows;
PHP中的错误:

Warning: sqlite_query(): no such table: cars_table in     /var/www/manage/testall/www/thesqlite.php on line 6 Warning: sqlite_num_rows() expects parameter 1 to be resource, boolean given in /var/www/manage/testall/www/thesqlite.php on line 7
编辑2:

使用sqlite_master搜索列出表名时,我看到0个表。因此,错误可能出现在数据库名称中(在这种情况下,我缺少sencha touch应用程序如何命名它)。

编辑
表a看这里

如果该表不存在,则可以对不存在的表执行任何查询,因此得到FALSE。

Edited
表a看这里


如果该表不存在,那么您可以对不存在的表执行任何查询,因此您得到的结果为FALSE。

对于错误和您提供的代码,我将走相反的路径:

警告:sqlite_query():第6行的/var/www/manage/testall/www/thesqlite.php中没有这样的表:cars_table警告:sqlite_num_rows()希望参数1是资源,第7行的/var/www/manage/testall/www/thesqlite.php中给出的布尔值

意味着
$query
是一个布尔值(在本例中为false),而不是一个资源

$query
为false,因为
sqlite\u查询($dbhandle,'SELECT*FROM cars\u table')
是一个失败的查询,因为数据库中不存在
cars\u table

cars\u table
在数据库中不存在,因为数据库是由您的语句
sqlite\u open('cars')
创建的(是的,刚刚创建的)。这是默认行为,正如您在一篇文章中提到的
cars
是服务器(php运行的地方)上不存在的文件,因为好的
cars
文件/数据库位于客户端(浏览器),javascript可以在客户端访问和操作它

但是,小心,您可以在服务器中找到一个
cars
文件/数据库,因为每次找不到它时,SQLite都会将其创建为空


如果您需要使用正版
cars
文件/数据库,则需要先上传到服务器

对于错误和您提供的代码,我将走相反的道路:

警告:sqlite_query():第6行的/var/www/manage/testall/www/thesqlite.php中没有这样的表:cars_table警告:sqlite_num_rows()希望参数1是资源,第7行的/var/www/manage/testall/www/thesqlite.php中给出的布尔值

意味着
$query
是一个布尔值(在本例中为false),而不是一个资源

$query
为false,因为
sqlite\u查询($dbhandle,'SELECT*FROM cars\u table')
是一个失败的查询,因为数据库中不存在
cars\u table

cars\u table
在数据库中不存在,因为数据库是由您的语句
sqlite\u open('cars')
创建的(是的,刚刚创建的)。这是默认行为,正如您在一篇文章中提到的
cars
是服务器(php运行的地方)上不存在的文件,因为好的
cars
文件/数据库位于客户端(浏览器),javascript可以在客户端访问和操作它

但是,小心,您可以在服务器中找到一个
cars
文件/数据库,因为每次找不到它时,SQLite都会将其创建为空


如果您需要使用正版
cars
文件/数据库,则需要先上传到服务器

1.)当您尝试使用php时,实际会发生什么?你确定你在同一台机器上使用javascript和php吗?当你运行代码时,会得到什么结果或错误消息?没有错误或结果。纯粹是空白页。javascript和php都托管在同一个文件夹中的同一台服务器上(具有完全的读/写权限);ini设置(“显示错误”,1);谢谢错误已经编辑到文章的底部1。)当您尝试使用php时,实际会发生什么?你确定你在同一台机器上使用javascript和php吗?当你运行代码时,会得到什么结果或错误消息?没有错误或结果。纯粹是空白页。javascript和php都托管在同一个文件夹中的同一台服务器上(具有完全的读/写权限);ini设置(“显示错误”,1);谢谢错误已编辑到帖子底部。我相信,如果数据库不可用,sqlite_open将自动创建数据库……因此它将始终显示“数据库已打开”。即使使用完全随机的数据库名称,如“asaskfjdsnkf”。(我可能是错的,但它显示的是针对我测试的所有内容都已打开)。我相信,如果数据库不可用,sqlite_open将自动创建数据库……因此它将始终显示“数据库已打开”。即使使用完全随机的数据库名称,如“asaskfjdsnkf”。(我可能错了,但它显示的是为我测试的所有内容打开的)。谢谢!我想我把sqlite更像是一个cookie文件,它位于客户端,但可以由PHP从服务器读取。我想我需要找到一种方法在客户端迭代sqlite并上传到服务器,反之亦然。谢谢!我想我把sqlite更像是一个cookie文件,它位于客户端,但可以