2015-06-02 8 views
5

Ich lerne OOP PHP mit MySQL. Ich versuche eine Abfrage auszuführen, die die Anzahl der zurückgegebenen Zeilen ausgeben soll. Mein PHP-Code ist wie folgt:Graf Anzahl der zurückgegebenen Zeilen in OOP PHP

$con= mysqli_connect('localhost','root','','dealinte_cms') or die(mysqli_error()); 
$email="[email protected]"; 
if($r=$con->prepare("SELECT * FROM user WHERE email=? ")){ 
$r->bind_param("s",$email); 
    if(!$r->execute()){ 
     echo mysqli_errno($con); 
    } 
    else{ 
     $rowCount=$r->num_rows; 
     echo $rowCount; 
    } 
} 

In meiner Datenbank, dass E-Mail in 4 Reihen, so es sollte 4 drucken, aber es zeigt, 0

Was ist falsch mit meinem Code?

Antwort

3

Sie müssen store result

$r->store_result(); 

und das auch, vor Sie für Zeilenanzahl überprüfen. Sehen Sie diese Notiz auf dem Handbuch Seite

Bitte beachten Sie, für Leute, die manchmal verpassen diese wichtige manuelle Eingabe für diese Funktion zu lesen:

Wenn Sie mysqli_stmt_store_result nicht() und diese Funktion immediatley nennen Nach dem Ausführen einer vorbereiteten Anweisung gibt diese Funktion normalerweise 0 zurück, da sie nicht wissen kann, wie viele Zeilen in der Ergebnismenge enthalten sind, da die Ergebnismenge noch nicht im Speicher gespeichert ist.

Tip

Da Sie OOP PHP lernen mit mysql, ist es wichtig, dass die Verbindung, die Sie mysql erstellt zu beachten, in prozeduralen Stil Syntax war. Während in PHP können Sie damit durchkommen, aber in vielen anderen Sprachen werden Sie nicht. Warum nicht jetzt in die OOP-Syntax konvertieren?

$con= new mysqli('localhost', 'my_user', 'my_password', 'my_db'); 
+0

oh, ich das nicht wusste. – partho

0

Sie müssen das Ergebnis mit store_result() speichern. Lesen Sie mehr here:

So sollte Ihr Code so etwas wie:

<?php 
$con= mysqli_connect('localhost','root','','dealinte_cms') or die(mysqli_error()); 
$email="[email protected]"; 
if($r=$con->prepare("SELECT * FROM user WHERE email=? ")){ 
$r->bind_param("s",$email); 
    if(!$r->execute()){ 
     echo mysqli_errno($con); 
    } 
    else{ 
     $r->store_result(); 
     $rowCount=$r->num_rows; 
     echo $rowCount; 
    } 
} 
?> 
Verwandte Themen