Prepared Statements - Zeilenanzahl ausgeben, wie?

noOx

Grünschnabel
Hallo,
zuallererst ich bin leider noch ein Anfänger im Bereich PHP/mySQL und komme nun an einer Stelle nicht weiter. Ich habe mir bereits das Tutorial hier zu den Prepared Statements angeschaut, was mir auch sehr weitergeholfen hat, aber mir nun doch etwas fehlt.

Zu meinem "Problem":

Ich habe eine GET-Variable, mit dieser Variable soll überprüft werden ob ein bestimmter string in der Datenbank als Zeile vorhanden ist bzw. wieviele es mit diesem String gibt. Das ganze soll aber mit Prepared Statements gelöst werden, habe dazu auch schon 2 Befehle gefunden, aber komm damit nicht wirklich weiter:
mysql_stmt_num_rows()
mysql_stmt_store_result()

Eigentlich will ich nur überprüfen ob eine Zeile mit diesem String vorhanden ist.

PHP:
            	<?php
					if (isset($_GET["gbpics"]))
					{
						$sql = "SELECT url, kategorie FROM gb_bilder WHERE kategorie = :kategorie";
						$stmt = $dbc->prepare($sql);

						$stmt->bindParam(':kategorie', $_GET['gbpics']);
						
						if($stmt->execute())
						{
 							while ($data = $stmt->fetch(PDO::FETCH_OBJ))
							{
								echo $anzahl;
  								echo '<p><img src="', $data->url, '" alt="', $data->kategorie, '" /></p>';
							}
						}
					}
					else
					{
						include("standard.php");	
					}
				?>

Hier kam ich ja nur dazu ob die GET-Variable gesetzt worden ist.
 
Moin,

da geht es etwas Querbeet mit den Prepared Statements bei dir :D

Das, was du gefunden hast, bezieht sich sicher auf mysqli, du scheinst dort jedoch PDO zu verwenden.

Die Methode dort heisst rowCount()

Beachte den Hinweis auf der verlinkten Seite, dass rowCount() bei SELECT nicht gezwungenermaßen die Anzahl der Treffer liefert... ich kann jetzt nicht mit 100%iger Sicherheit sagen, dass dies bei einer MySQL-DB der Fall sein wird(zu 99% würd ich aber tippen, dass du die Zeilenanzahl geliefert bekommst).

Falls du aber nicht vorhast, deine Anwendung später auch mit anderen DB-Systemen als MySQL laufen zu Lassen, würde ich empfehlen, auf PDO zu verzichten und gleich MySQLi zu nehmen :)
 
Zurück