2017-01-29 3 views
0

Ich versuche SQL in einer SQLite-Datenbank, um einen Datensatz auszuwählen, der eine bestimmte Datumszeichenfolge, Zeitzeichenfolge, Namenszeichenfolge enthält. Ich bin mit PHP PDO:SQLite-Abfrage für Werte in mehreren Feldern

$Qry = sprintf("SELECT * FROM Log WHERE QsoDate = '%s' AND TimeOn = '%s' AND Call = '%s'", $DTG["Date"], $DTG["Time"], $Call)); 
$qry = $SQLite->prepare($Qry); 
$res = $qry->execute(); 
$tt = $qry->rowCount(); 
$Srow = $qry->fetch(SQLITE_ASSOC); 

$ tt auf Null gesetzt und $ SROW wird auf false gesetzt wird. Sowohl $ qry als auch $ res werden auf einen gültigen Wert gesetzt. Die Kombination von Werten sollte sicherstellen, dass nur ein Datensatz zurückgegeben wird, und beim Testen weiß ich, dass der Datensatz existiert, aber keiner meiner Abfrageversuche scheint ihn zu finden. Ich vermute, dass meine SQL-Syntax falsch ist.

+1

Echo die 'SELECT' Anweisung, um zu sehen, was übergeben wird. – Parfait

Antwort

0

Von documentation: PDOStatement :: rowCount() gibt die Anzahl der Zeilen zurück, die von einer DELETE-, INSERT- oder UPDATE-Anweisung betroffen sind. Es ist nicht anwendbar auf SELECT Aussagen.

+0

Aber ich verwende die PDO-Bibliothek, nicht die SQLite3-Bibliothek. Das Handbuch schlägt vor, was ich habe. Die Verwendung von $ res ist fehlgeschlagen. Siehe PDO-Dokumentation unter: http: //php.net/manual/en/pdostatement.rowcount.php – Pilot

+0

Korrigiert meine Antwort, nachdem Sie mit PDO angegeben haben. –

+0

Danke. Das habe ich bei meiner Lektüre vermisst, aber Sie haben Recht. – Pilot

Verwandte Themen