PHP MySQL PDO SELECT und counte die Ergebnisse

Cr41s3

Ensign
Registriert
Dez. 2012
Beiträge
246
Hallo zusammen.

Ich möchte einen code aus der Datenbank selecten per PHP PDO.

Hier ist mein Code erstmal:
PHP:
$select_params = array(':resetcode' => $resetcode);
$prep_select_stmt2 = "SELECT resetcode FROM users WHERE resetcode = :resetcode LIMIT 1";
		$select_stmt2 = $pdo->prepare($prep_select_stmt2);
        $select_stmt2->execute($select_params);
        $select_result2 = $select_stmt2->fetch(PDO::FETCH_ASSOC);

        
        $resetcodedb = $select_result2['resetcode'];
		echo $resetcodedb;

Ich weiß nicht, ob die Query so geht, wie ich sie habe.
Ich möchte halt schauen, ob der resetcode nicht gleich 'NixDa' ist.
Da 'NixDa' in der Column steht, wenn kein resetcode vorhanden ist.

Vielleicht versteht ihr was ich meine, aber ich kann es gerade nicht besser erklären :/

Vielen Dank im Voraus.

MfG-
 
Erledigt.
Zu mindest in PHPMyAdmin bekomme ich das richtige Ergebnis.
Nur in PHP bekomme ich nichts.
 
Supi und wie debugge ich das.
Error reporting geht nicht.
So weit war ich wohl.
 
Hi,

Error reporting geht nicht.

Geht nicht weil?

Code:
$dbPDO = new PDO('mysql:host=localhost;dbname=database;charset=utf8', 'user', 'password');

$stmt = $dbPDO ->prepare("SELECT * FROM table WHERE id=?;");
$stmt->execute(array($value));

$resultArr = $stmt->fetchAll(PDO::FETCH_ASSOC);

foreach ($resultArr as $row) {...

So kann / sollte der Code aussehen, damit er funktioniert. Kriegst du grundsätzlich Werte zurück? Oder einen Fehler? Welche PHP Version nutzt du?

VG,
Mad
 
Was ist an deinem Code jetzt anders?

pdo habe ich auch
Prepare STMT habe ich auch
Execute habe ich auch.

fetchAll habe ich auch.
 
Hi,

Was ist an deinem Code jetzt anders?

Wäre ich jetzt fies würde ich sagen: meiner funktioniert ;)

Also, welche PHP Version? Mach erstmal ein einfaches "Select * FROM Tabelle;" und lass dir irgendwas anzeigen, nur um zu schauen, ob PDO generell klappt. Darauf aufbauen, Komplexität langsam einbauen.

VG,
Mad
 
PDO an sich geht, da ich davor noch ein Statement stehen habe.

Aktueller Code:
PHP:
$prep_select_stmt2 = "SELECT * FROM users WHERE resetcode = ? LIMIT 1";
		$select_stmt2 = $pdo->prepare($prep_select_stmt2);
        //$select_stmt2->execute($select_params);
        //$select_result2 = $select_stmt2->fetch(PDO::FETCH_ASSOC);
		
		$select_stmt2->execute(array($resetcode));
		$select_result2 = $select_stmt2->fetchAll(PDO::FETCH_ASSOC);
		
		print_r ($select_result2);
Folgendes kommt raus:
Array ( )
Notice: Undefined index: resetcode in C:\xampp\htdocs\serie\includes\reset.inc.php on line 44
 
Hi,

die Fehlermeldung sagt doch relativ klar, was es für ein Fehler ist! Undefined index: resetcode

VG,
Mad
 
Ja.
Bezieht sich auf die Zeile, die danach kommt
PHP:
$resetcodedb = $select_result2['resetcode'];
=> Er konnte in dem Ergebnis den Index 'resetcode' nicht finden -> SELECT Fehler?
Ergänzung ()

Mit meinem Code gibt es keinen Error und der print_r Befehl ist komplett leer anscheinend.
 
Wenn der print_r Befehl leer ist gibts wohl doch nen Fehler irgendwo, meinste nicht auch?
 
Jor irgendwie schon.
Ansonsten gibt der print_r zurück:
Array ( )
Nur finde ich den Fehler nicht, vielleicht habe ich ja deswegen mich hier gemeldet, um Lösungsvorschläge zu bekommen...
 
Was ist denn der Inhalt von $select_result2? Ist der Wert evtl. sogar ===FALSE?
 
Ich habe in allen Scripts in den Arrays den ':' im Namen und es geht.
Bin mir da nicht so ganz sicher gewesen, aber es geht.

Habe das mit den Exceptions mal ausprobiert.
Sah in etwa so aus:
PHP:
try{
	$prep_select_stmt2 = "SELECT * FROM users WHERE resetcode = :resetcode LIMIT 1";
		$select_stmt2 = $pdo->prepare($prep_select_stmt2);
        $select_stmt2->execute($select_params);
        $select_result2 = $select_stmt2->fetch(PDO::FETCH_ASSOC);
		
		print_r ($select_result2);
        
        $resetcodedb = $select_result2['resetcode'];
	}
	catch(Exception $e){
		var_dump($e);
	}
Gab aber auch keine weiteren Errors.
 
Die : sind auch in den offiziellen Beispielen auf php.net zu finden, auch in der Array-Variante.

Kleiner Tip zum DEbugging: var_dump gibt komplexere Informationen als print_r, außerdem sollte man nach Möglichkeit auch ein exit; dahinter packen.
 
Okey mit var_dump bekomme ich für $select_result2:
bool(false)
Also irgendwie kann die Query nicht richtig ausgeführt werden.
 
Zurück
Oben