2011-01-19 2 views
0

問題:PHPでsqlite 2.1 dbを使用していましたが、PHPでSQLiteDatabaseオブジェクトを使用していましたが、今はsqlite 3.xにアップグレードしていますので、PHPでもSQLite3を使用したいです。私は直面するSQLiteDatabaseオブジェクトに直面しています。私は簡単にdatabseに問い合わせることによって返されるレコードの数を数えましたが、今はSQLite3で同じことをすることができません。 SQLiteDatabaseとCount sqlite3レコードセットのレコード数

サンプル古いコード:

$base= new SQLiteDatabase('users.db'); 
$query = 'select id from users'; 
$results = $base->query($query, SQLITE_ASSOC); 
echo sizeof($results); 

出力新規SQLite3ので

50 

サンプル古いコードを生成し、このコード:

$base = new SQLite3('users.db'); 
$query = 'select id from users'; 
$results = $base->query($query); 
echo sizeof($results); 

しかし、上記のコード

この返します。

1 

の代わりに50それが1、

Qを示している:どのように私はSQLite3の中で($結果)レコードセットの行数を計算することができますか?

答えて

0

あなたが使用しているAPIはわかりませんが、$結果にはクエリが処理されているという「真の意味」が含まれている可能性があります結果を確認し、APIをチェックしてください。これはリンクだと思います。http://us.php.net/manual/en/book.pdo.php

明らかに、$ rows-> fetch(PDO :: FETCH_OBJ) - > rowsのようなことをしなければなりません。いずれの場合でも、オブジェクトから結果をフェッチする必要があります。

APIを読んでください。

幸運

+0

http://php.net/manual/en/book.sqlite3.phpのマニュアルを読んで、関連するオプションを見つけることができませんでした。それがなぜ私がここに質問したのか。 –

+0

http://www.php.net/manual/en/class.sqlite3result.php – Lacrymology

+3

^^全く役に立たない返信です。誰もが、結果に返される行数を取得する方法がないことを知るために、マニュアルを読むのに悩まされているようにはいません。よくできました。 –

0

私はちょうどこれを行う方法に関する興味深い記事を見つけました。それはちょっとしたボギーですが、うまくいきます。基本的には、PDOを直接使用するのではなく、SQLite3で使用してください。 PDOはcount()を呼び出すことができる 'fetchAll()'メソッドを提供します。

参考:あなたは結果そのものではなく、行の数のみを必要としない場合、私は、数を行うSQLiteを持つお勧めしますhttp://blog.digitalneurosurgeon.com/?p=947

0

すなわち:

$count=$base->querySingle("SELECT count(id) FROM users") 

は数を格納します変数$countのユーザーテーブルの行。

これ以外にも、$results->fetchArray()をループし、カウント変数をインクリメントします。

関連する問題