"sqlite_num_rows() expects parameter 1 to be resource, object given…"

[ geschrieben am 14.05.2012 in blog: der maschinist | tags: #, #, #, # ]

für diverse datenbankoperationen (z.b. fortlaufende nummerierungen) kann es sinnvoll sein, zu wissen, wieviele zeilen eine datenbanktabelle enthält. in sqlite3 soll das ganze mit „sqlite_num_rows()“ umesetzbar sein, wurde mir jedoch mit einer fehlermeldung à la…

[14-May-2012 20:39:31] PHP Warning: sqlite_num_rows() expects parameter 1 to be resource, object given in /Applications/MAMP/htdocs/assets/functions.inc.php on line 258

…quittiert.

ich habe einige zeit mit „sqlite_num_rows()“ herumprobiert, bis ich mich damit zufrieden gab, dass es sinn macht, nach alternativen ansätzen zu forschen…

nun könnte man ganz simpel einfach alle zeilen durchzählen lassen, was bei kleineren tabellen sicher auch noch okay geht:

$rows = 0;
$dbhandle = open_db($path);
$dbquery = 'SELECT * FROM table';
$dbresult = $dbhandle->query($dbquery);
while($entry = $dbresult->fetchArray(SQLITE3_ASSOC)){
   $rows++;
}
echo $rows;
[...]

spätestens, wenn die tabelle etwas größer wird ist, ist folgender ansatz definitiv sinnvoller:

$dbhandle = open_db($path);
$dbquery = 'SELECT COUNT(*) as count FROM table';
$dbresult = $dbhandle->query($dbquery);
$rows = $dbresult->fetchArray(SQLITE3_ASSOC);
echo $rows['count'];
[...]

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.