+ Antworten
Seite 2 von 2 ErsteErste 1 2
Ergebnis 16 bis 20 von 20

Thema: [Tutorial] Einführung in die MySQLi-Erweiterung von PHP 5

  1. #16
    TP-Member kcyberbob macht alles soweit korrekt Avatar von kcyberbob
    Registriert seit
    Mar 2002
    Ort
    Nähe München
    Beiträge
    79
    Hallo,

    erstmal muss ich loswerden, dies ein super Tutorial ist! Doch leider versteh ich nicht wie ich bei diesere Methode "Datensätze auslesen (Prepare Methode)"
    die Anzahl der gefunden Beiträge ausgeben kann bzw. überprüfen kann ob ein Eintrag vorhanden ist.

    Würde mich freuen wenn mir jemand weiter helfen kann.

    Gruß Andy

  2. #17
    TP-Specialist phpBuddy ist einer der Eckpfeiler des TP - ohne ihn geht nichts phpBuddy ist einer der Eckpfeiler des TP - ohne ihn geht nichts phpBuddy ist einer der Eckpfeiler des TP - ohne ihn geht nichts phpBuddy ist einer der Eckpfeiler des TP - ohne ihn geht nichts phpBuddy ist einer der Eckpfeiler des TP - ohne ihn geht nichts phpBuddy ist einer der Eckpfeiler des TP - ohne ihn geht nichts phpBuddy ist einer der Eckpfeiler des TP - ohne ihn geht nichts phpBuddy ist einer der Eckpfeiler des TP - ohne ihn geht nichts phpBuddy ist einer der Eckpfeiler des TP - ohne ihn geht nichts phpBuddy ist einer der Eckpfeiler des TP - ohne ihn geht nichts phpBuddy ist einer der Eckpfeiler des TP - ohne ihn geht nichts Avatar von phpBuddy
    Registriert seit
    Aug 2004
    Ort
    Kaiserslautern
    Beiträge
    4.678
    Zitat Zitat von kcyberbob Beitrag anzeigen
    […]Doch leider versteh ich nicht wie ich bei diesere Methode "Datensätze auslesen (Prepare Methode)" die Anzahl der gefunden Beiträge ausgeben kann bzw. überprüfen kann ob ein Eintrag vorhanden ist.[…]
    Hallo,

    mit mysqli_affected_rows ($obj->affected_rows) oder mysqli_num_rows ($obj->num_rows). Zu beachten hier ist lediglich, dass es sich um Eigenschaften und nicht um Methoden handelt.

  3. #18
    TP-Member kcyberbob macht alles soweit korrekt Avatar von kcyberbob
    Registriert seit
    Mar 2002
    Ort
    Nähe München
    Beiträge
    79
    PHP-Code:
    $id 1;
    $getUser 'SELECT `user_id`, `username`, `user_email`, `user_temp_pass`, `user_random_key` FROM `ak_users` WHERE `user_id` = '$id .';';
    $ergebnis $db->prepare($getUser);
    $ergebnis->execute();
    $ergebnis->bind_result$user_id$username$user_email$user_temp_pass$user_random_key);
    $ergebnis->fetch();
                        
    echo 
    $username;
    echo 
    "<br>";        
    echo 
    $ergebnis->num_rows;   /* Ergebnis 0*/
    echo "<br>";
    echo 
    $ergebnis->affected_rows/* Ergebnis -1*/ 
    Normal müsste das Ergebnis 1 sein und nicht 0 oder -1.

    Was ist daran falsch?

  4. #19
    TP-Specialist phpBuddy ist einer der Eckpfeiler des TP - ohne ihn geht nichts phpBuddy ist einer der Eckpfeiler des TP - ohne ihn geht nichts phpBuddy ist einer der Eckpfeiler des TP - ohne ihn geht nichts phpBuddy ist einer der Eckpfeiler des TP - ohne ihn geht nichts phpBuddy ist einer der Eckpfeiler des TP - ohne ihn geht nichts phpBuddy ist einer der Eckpfeiler des TP - ohne ihn geht nichts phpBuddy ist einer der Eckpfeiler des TP - ohne ihn geht nichts phpBuddy ist einer der Eckpfeiler des TP - ohne ihn geht nichts phpBuddy ist einer der Eckpfeiler des TP - ohne ihn geht nichts phpBuddy ist einer der Eckpfeiler des TP - ohne ihn geht nichts phpBuddy ist einer der Eckpfeiler des TP - ohne ihn geht nichts Avatar von phpBuddy
    Registriert seit
    Aug 2004
    Ort
    Kaiserslautern
    Beiträge
    4.678
    Hallo,

    so kann das ja auch nicht funktionieren. Stell dir das mal so vor:
    Du sendest eine Anfrage (Bestellung) an die DB, dass Du diese und jene Datensätze gerne für deine Applikation verwenden möchtest (prepare mit Übermittlung des Statement). Anschließend schickst Du die Auftragsbestätigung hinterher (execute). MySQL sucht jetzt die Datensätze (Artikel) heraus, macht daraus ein hübsches großes Paket in dem viele kleine Artikel deiner Bestllung sind und legt es auf die Seite und wartet, bis es abgeholt wird (fetch). Damit es da kein Durcheinander gibt, bekommst Du jeden Artikel einzeln übergeben (while(fetch) - ab PHP 5.3 kannst Du auch das ganze Paket abholen mit fetch_all). Du weißt aber noch gar nicht, wie viele Artikel tatsächlich gefunden wurden und wie oft Du zur DB musst um den nächsten Artikel abzoholen. Das erfährt man für gewöhnlich vom Lieferschein, auf dem sämtliche Details der Bestellung stehen und welche Artikel tatsächlich lieferbar sind - und genau der fehlt offensichtlich bei dir. Um den Lieferschein anzufordern, benutzt man bei den Prepared Statements ein $ergebnis->store_result(). Das store_result übergibt an PHP Informationen über den letzten Datentransfer (gesamte Bestellung inklusive lieferbare Artikel (num_rows/affected_rows)).
    Aus dieser kleinen, kitschigen Story ergibt sich also folgende Vorgehensweise:
    Bestellung aufgeben -> Bestellung bestätigen -> Lieferschein prüfen -> Ware mitnehmen


    Kleiner Nachtrag
    Wenn Du schon Prepared Statements verwendest, was man tun sollte, weil es gut ist, dann solltest Du das auch konsequent machen. Soll heißen, dass man dann im Statement nicht direkt Daten einfügt, weil dass das Vorbereiten des Statement zunichte macht. Besser so …

    PHP-Code:
    $getUser  'SELECT `user_id`, `username`, `user_email`, `user_temp_pass`, `user_random_key` FROM `ak_users` WHERE `user_id` = ?';
    $ergebnis $db->prepare$getUser );
    $ergebnis->bind_param'i'$id );
    $ergebnis->execute(); 
    Geändert von phpBuddy (17.07.2010 um 23:11 Uhr)

  5. #20
    TP-Member kcyberbob macht alles soweit korrekt Avatar von kcyberbob
    Registriert seit
    Mar 2002
    Ort
    Nähe München
    Beiträge
    79
    PHP-Code:
    $id 1;
    $getUser  'SELECT `user_id`, `username`, `user_email`, `user_temp_pass`, `user_random_key` FROM `ak_users` WHERE `user_id` = ?'
    $ergebnis $db->prepare$getUser ); 
    $ergebnis->bind_param'i'$id );
    $ergebnis->execute();
    $ergebnis->bind_result$user_id$username$user_email$user_temp_pass$user_random_key);

    $ergebnis->store_result();    
                        
    if(
    $ergebnis->num_rows == 1) {
       
    $ergebnis->fetch();                    
       echo 
    $username;

    Also so und das Ergebniss stimmt auch.
    Geändert von kcyberbob (17.07.2010 um 23:14 Uhr)

+ Antworten
Seite 2 von 2 ErsteErste 1 2

Stichworte


Aktive Benutzer

Aktive Benutzer

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)

     

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51