Ankündigung

Einklappen
Keine Ankündigung bisher.

Prüfen ob Select-Query Datensätze gefunden hat

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Prüfen ob Select-Query Datensätze gefunden hat

    PHP-Code:
    $query mysqli_query($db"SELECT * FROM table");
    if (
    mysqli_num_rows($query) > 0) {
      
    // code

    Oft findet sowas Anwendung in meinen Skripten und da habe ich mich jetzt gefragt, ob man das nicht eleganter machen kann, um zu prüfen ob die Query etwas gefunden hat.

    PS: Ich gebe NIE spezifisch die Spalten aus, die ich aus einem Datensatz möchte, ich mache immer *. Gibt es IRGEND EINEN Vorteil, wenn ich nur die rausnehme, die ich brauche.


  • #2
    In wie fern eleganter? Mal abgesehen davon das man * nicht in einer Query benutzen sollte.
    - Laravel

    Kommentar


    • #3
      Zitat von tera3yte Beitrag anzeigen
      In wie fern eleganter? Mal abgesehen davon das man * nicht in einer Query benutzen sollte.
      Wieso nicht?

      Naja, gibt es nicht auch
      PHP-Code:
      if (mysqli_fetch_assoc($res)) { /* code */ 

      Kommentar


      • #4
        machen wir ratestunde?
        Code:
        if ( $result = mysqli_query($db, "SELECT * FROM table")) {
        /*    */
        }
        PDO ist doch eleganter, oder nicht?

        Ich gebe NIE spezifisch die Spalten aus
        menschen mit grundsätzen, hut ab.
        und bei den dosen, mit denen wir spielen dürfen, auf dem niveau auf dem wir spielen, stört das keinen grossen geist.

        Kommentar


        • #5
          16.14. Warum soll ich nicht SELECT * schreiben?
          http://net.co.at/doc/howto/docs/dclp...ql-select.html
          Die Deutsche Rechtschreibung ist Freeware! Du darfst sie kostenlos nutzen, allerdings ist sie nicht Open Source, d.h. Du darfst sie nicht verändern oder in veränderter Form veröffentlichen.

          Kommentar


          • #6
            Zitat von moma Beitrag anzeigen
            Code:
            if ( $result = mysqli_query($db, "SELECT * FROM table")) {
            /*    */
            }
            Neh Moma, das funktioniet so nicht. $result ist nur nicht wahr wenn der Query fehlerhaft ist.

            Zitat von String Beitrag anzeigen
            Oft findet sowas Anwendung in meinen Skripten und da habe ich mich jetzt gefragt, ob man das nicht eleganter machen kann, um zu prüfen ob die Query etwas gefunden hat.
            Eleganter? Entweder interessierets dich ob das Resultset 0 Datensätze beinhaltet oder nicht. Du kannst die Opbjektorientierte Schreibweise nehmen, aber als elegant würde ich das auch nicht bezeichnen. (dazu müsstest du auch mysqli als OOP benutzten... new mysqi())

            PHP-Code:
            if($query->num_rows) { ... } 

            Zitat von String Beitrag anzeigen
            Ich gebe NIE spezifisch die Spalten aus, die ich aus einem Datensatz möchte, ich mache immer *. Gibt es IRGEND EINEN Vorteil, wenn ich nur die rausnehme, die ich brauche.
            -Ressourcenverschwendung
            -Robustheit (änderst du ein Feld in der Datenbank bekommst du ein harten Fehler -> erwünscht!)
            -die Aufgabe des Queries ist schwer abzuschätzen
            -für 3te schwerer zu lesen

            Kommentar


            • #7
              Es spricht nichts gegen * sofern du die Resultate gleich weiterverwenden möchtest (Also tatsächlich das komplette Paket ausgeben möchtest)

              Bei einer einfachen Abfrage, ob Datensätze gefunden wurden rate ich dir aber zu einem eindeutigen Feld wie z.B id
              PHP-Code:
              select id from 
              da hierzu nicht der ganze Stapel durchsucht wird und es somit schneller geht.

              Vergiss PDO oder Mysqli. Ist immer noch langsamer als Mysql. Also achte nicht darauf, was dir hier erzählt wird sondern gib einfach selber bei google ein MSQLI vs MYSQL vs PDO.

              Entscheide dann selbst. Ich bin von Mysqli wieder weg.
              PDO ist bzgl. Geschwindigkeit sogar noch hinter mysqli

              Kommentar


              • #8
                jo Erc, hat moma nicht nachgedacht, danke

                gehört nicht das abfragen ob daten enthalten sind, aber nicht sowieso zur auswertung - anwendungslogisch?

                Kommentar


                • #9
                  Zitat von Labrar Beitrag anzeigen
                  Vergiss PDO oder Mysqli. Ist immer noch langsamer als Mysql. Also achte nicht darauf, was dir hier erzählt wird sondern gib einfach selber bei google ein MSQLI vs MYSQL vs PDO.

                  Entscheide dann selbst. Ich bin von Mysqli wieder weg.
                  PDO ist bzgl. Geschwindigkeit sogar noch hinter mysqli
                  Nochmal: Bitte lass sowas.
                  http://php.net/manual/de/function.mysql-query.php
                  Warnung
                  Diese Erweiterung ist seit PHP 5.5.0 als veraltet markiert und wird in der Zukunft entfernt werden. Verwenden Sie stattdessen die Erweiterungen MySQLi oder PDO_MySQL. Weitere Informationen finden Sie im Ratgeber MySQL: Auswahl einer API und den zugehörigen FAQ. Alternativen zu dieser Funktion umfassen:
                  mysqli_query()
                  PDO::query()
                  Relax, you're doing fine.
                  RTFM | php.de Wissenssammlung | Datenbankindizes | Dateien in der DB?

                  Kommentar


                  • #10
                    Ganz sicher nicht. Ich denke jeder sollte hier selber googlen.
                    Glaubt ihr tatsächlich, dass irgendein Proivider irgendwann hergeht und einfach so mal alles updated?

                    Rechtlich völlig unmöglich, da es viel zu viele Seiten gibt, die noch mit den älteren Versionen arbeiten.

                    D.h. es wird für mich und auch für alle anderen auch weiterhin mysql geben.

                    So. Ob oder was ihn nutzt bleibt euch überlassen. Aber es ist ein Trugschluss, dass es irgendwann kein mysql mehr gibt. (sagte man von Flash ja auch schon und es rennt immer noch wie wild)

                    Tatsache ist, mysql ist schneller. Und so lange das so ist, sehe ich keinen Grund wieder zu mysqli oder gar zum langsamneren PDO zu wechseln.

                    Kleiner Edit um der Gerechtigkeit genüge zu tun

                    wenn jemand einen Server anbietet, nachdem kein mysql mehr angeboten wird ist das eine andere Sache. Aber auch ein anderes Verhältnis.

                    Die meisten heute haben aber noch ein Sytem das mysql kann. Und das werden, zumindest diese Systeme, auch immer können. Es sei denn man ist so doof und stimmt einem entsprechenden Update zu, bzw. bei root Servern macht dieses selbst.

                    Generell gibt es keine Provider AGB's die darauf hinweisen, dass ein solcher Update jederzeit möglich ist. Und selbst wenn, wäre das rechtlich anfechtbar. Und zwar richtig.

                    Ich habe 60 Domains am Start. 20 davon auf mysqli, der Rest auf mysql. Würde mein Provider da einen Update fahren und somit 40 Domains nicht mehr laufen hätte der schneller eine Klage am Hals als er Pup sagen könnte. Und ja, das sage ich nicht so dahin, das habe ich aufgrund der ganzen Updatenakündigungen hinterfragt.

                    Kommentar


                    • #11
                      Also gehst du davon aus, dass dein Provider immer und ewig bei einer alten PHP-Version bleibt, nur um die MySQL-Extension weiterhin anzubieten. Das glaubst du jetzt nicht im Ernst, oder? Klar, eine Umstellung wird nicht von heute auf morgen durchgeführt, aber auf lange Sicht wird das passieren. Und warum um alles in der Welt soll man etwas veraltetes lernen? Das ist doch völlig daneben.
                      Die Deutsche Rechtschreibung ist Freeware! Du darfst sie kostenlos nutzen, allerdings ist sie nicht Open Source, d.h. Du darfst sie nicht verändern oder in veränderter Form veröffentlichen.

                      Kommentar


                      • #12
                        //OT:
                        der ist doch nur zu faul seine server upzudaten und macht hier kundenaquise, langfristige.

                        Kommentar


                        • #13
                          Stop.

                          Wenn es irgendwann erwiesen ist, dass mysqli oder pdo schneller wurde als mysql ist es wohl in meinem eigenen Interesse entsprechend zu handeln. Was aber natürlich schwer ist wenn du communitys fährst, die zu mysql Zeiten erstellt wurden. Aber auch dafür wirds eine Lösung geben.

                          Aber darum kümmere ich mich erst, wenns soweit ist.

                          Bis dahin habe ich das Recht auf meiner Seite und werde das auch ausschöpfen.

                          Ja, ich bin ein Anwaltrenner und schäme mich nicht dafür.

                          mysqli und pdo stecken noch in den Kinderschuhen. Zumindest meines Eindrucks nach.

                          Ich bin der Typ "never change a running system"

                          Mysqli habe ich nur angefangen, weil alle meinten, das muss man nehmen.
                          Das bereue ich, da der upgrade wesentlich einfacher ist als der downgrade.

                          @moma

                          Nein. Das betrifft nur meinen Server. Meine Kunden frage ich, wie sie es haben wollen. Ist ja dann auf deren Server. Ich biete keinen Webspace an.

                          Nochmaledit @moma

                          So wie ich denken mehr als du denkst.

                          Kommentar


                          • #14
                            Du machst ein Wirbel aus der Sache, das ist echt lustig. Der Umstieg von MySQL auf MySQLi ist doch ruckzuck erledigt, vorausgesetzt man hat keine Spaghetti-Programmierung gebaut. Bei den meisten meiner Domains war das genau ein Klasse umschreiben und dann die Datei verteilen. Also im Grunde genommen Kinderkacke.
                            Die Deutsche Rechtschreibung ist Freeware! Du darfst sie kostenlos nutzen, allerdings ist sie nicht Open Source, d.h. Du darfst sie nicht verändern oder in veränderter Form veröffentlichen.

                            Kommentar


                            • #15

                              Kommentar

                              Lädt...
                              X