1

Sencha Touch(ここ)のSQLiteポートを使用して作成されたSQLiteデータベースがあり、データベース名は引用符なしの「cars」であり、その中のテーブルは引用符なしの「cars_table」と呼ばれます。

私はJavaScriptでSQLiteテーブルを完全に読み取り/書き込み/更新することができ、googlechromeの[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アプリがデータベースに名前を付ける方法がわかりません)。

4

2 に答える 2

1

エラーとあなたが提供したコードについて逆の道を歩みます:

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

$queryリソースではなくブール値(この場合はfalse)である ことを意味します。

$queryデータベースに存在しない sqlite_query($dbhandle, 'SELECT * FROM cars_table')ためにクエリが失敗したため、はfalseです。cars_table

cars_tabledababaseは文によって作成されたばかりであるため(はい、作成されたばかりです)、データベースには存在しませんsqlite_open('cars')。そのため、dbにはテーブルがありません。コメントの1つで述べているように、これはデフォルトの動作です。carsはサーバー(phpが実行されている場所)に存在しないファイルです。これは、適切なcarsファイル/データベースがクライアント側(ブラウザー)にあり、JavaScriptがアクセスして操作できるためです。

ただし、注意carsしてください。SQLiteはファイル/データベースが見つからないたびに空になるため、サーバーでファイル/データベースを見つけることができます。

本物のcarsファイル/データベースを使用する必要がある場合は、最初にサーバーにアップロードする必要があります。

于 2012-07-13T17:46:34.480 に答える
0

編集
したテーブルはこちらをご覧ください ATTACHで開いたSQLiteデータベースファイルのテーブルを一覧表示するにはどうすればよいですか?

テーブルが存在しない場合は、存在しないテーブルに対して任意のクエリを実行できるため、FALSEになります。

于 2012-07-13T16:57:37.287 に答える