Ankündigung

Einklappen
Keine Ankündigung bisher.

mysql bei php7

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

  • mysql bei php7

    Hallo,

    kann mir jemand helfen? Ich habe einige Zeilen Code, welche Abfragen in einer Datenbank machen.

    Seit ich php 7 habe funktioniert das nicht mehr. Nach längerem Einlesen, habe ich nun den Hinweis erhalten, dass man jetzt mysqli statt mysql verwenden muss, aber mein Skill bekommt die Änderungen nicht hin

    Das ist meine connect.php

    Code:
     <?php
     $dbHost = "localhost";
     $dbUser = "d02aa999";
     $dbPass = "7777bl321";
     $dbName = "d02aa999";
    $connect = @mysql_connect($dbHost, $dbUser, $dbPass);
    $selectDB = @mysql_select_db($dbName, $connect);
    $utf = @mysql_query( "SET NAMES 'utf8'", $connect );
     ?>
    und hier die Abfragen in einer anderen Datei:

    HTML-Code:
    
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <script>
    function back()
    {
        window.history.back();
    }
    </script>
    
    
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <link rel="stylesheet" type="text/css" href="layout.css" />
    <title>Order Search</title>
    </head>
    
    <body>
        <div id="page">
            <div class="topNaviagationLink"><a href="index.php">Home</a></div>
          </div>
        <div id="mainPicture">
            <div class="picture" onclick="window.location='index.php';">
                <div id="headerTitle"></div>
    
            </div>
        </div>
    
    <div class="contentBox">
            <div class="innerBox">
                <div class="contentTitle">
    
    <form name="form2" method="post" action="updatemultiple.php">
    <table class="table table-bordered table-striped">
              <thead>
    <tr>
        <th>Auswahl</th>
               <th>Name Kunde</th>
               <th>Datum</th>
               <th>Bestell Nr.:</th>
               <th>Bestellstatus</th>
               <th>Paket Nr.:</th>
           <th>Versandfirma</th>
    
    </tr>
    </thead>
    <tbody>
              <?php
              $id = $_POST['on'];
              $id2 = $_POST['to'];
    
                   require ('connect.inc.php');
    echo '<input type="hidden" name="myVariable" value="'.($id).'">';
    
    
                $sql = mysql_query("SELECT customers_name, date_purchased, orders_id, orders_status  from orders where orders_id between $id and $id2 ORDER BY orders_id asc");
                $query = mysql_query("SELECT orders_status_name,orders_status_id from orders_status where language_id = '2'");
                $query2 = mysql_query("SELECT tracking_code, tracking_carrier from orders_tracking where orders_id between $id and $id2 ORDER BY orders_id asc");
                $query3 = mysql_query("SELECT ct_carrier,ct_id from carrier_tracking where ct_language_id = '2'");
    
                $c = 0;
                $d = 0;
                while($row3 = mysql_fetch_assoc($query3)){
      // add each row returned into an array
      $array[$c] = $row3['ct_carrier'];
      $arrayid[$d] = $row3['ct_id'];
      $c++;
      $d++;
    }
    $index = 0;
    $array2 = array();
    $index2 = 0;
    while ($row2=mysql_fetch_assoc($query)) {
    
        $array2[$index] = $row2['orders_status_name'];
        $array5[$index2] = $row2['orders_status_id'];
        $index++;
        $index2++;
    }
    
    while($row = mysql_fetch_array($sql))
    {
         $a =     $row['orders_status'];
        $query11 = mysql_query("SELECT orders_status_name from orders_status where orders_status_id = $a AND language_id='2'");
        $row11 = mysql_fetch_array($query11);
    
    
    echo "<tr><td>";
    ?>
    <input name="checkbox-<?php echo $row['orders_id']; ?>" type="checkbox" id="checkbox[]">
    <?php
    $date = new DateTime($row['date_purchased']);
    echo "</td><td>" . $row['customers_name'];echo "</td><td>" . $date->format('d.m.Y H:i'); echo "</td><td>" . $row['orders_id'];
    
    echo"</td><td>";
    echo "<select name='order_status-" . $row['orders_id'] . "'>";
    echo "<option value='" . $row['orders_status'] . "'>".  $row11['orders_status_name'] ."</option>";
    for($i = 0;$i<$index;$i++){
    
    echo "<option value='".$array5[$i]."'>".$array2[$i]    ."</option>";
        }
    echo "</select>";
    
            echo "</td><td>";
            $row33=mysql_fetch_array($query2);
    
               echo "<input type='text' name='tracking-" . $row['orders_id'] ."' value='". $row33['tracking_code']."'>";
       /*
       $query45 = mysql_query("SELECT ct_carrier,ct_id from carrier_tracking where ct_id = $tc AND ct_language_id ='2'");
        $row312=mysql_fetch_array($query45);
    
         echo "<option value='" . $row312['ct_id'] . "'>" . $row312['ct_carrier']. "</option>";
        while ($row3=mysql_fetch_array($query3)) {
    
        echo "<option value='" . $row3['ct_id'] . "'>" . $row3['ct_carrier'] . "</option>";
        }
       */
        $tc = $row33['tracking_carrier'];
        echo"</td><td>";
        echo "<select name='order_statuss-" . $row['orders_id'] . "'>";
         $query45 = mysql_query("SELECT ct_carrier,ct_id from carrier_tracking where ct_id = $tc AND ct_language_id='2'");
        $row312=mysql_fetch_array($query45);
         echo "<option value='" . $row312['ct_id'] . "'>" . $row312['ct_carrier']. "</option>";
    for($i = 0;$i<$c;$i++){
    
         echo "<option value='" . $arrayid[$i]. "'>" . $array[$i] . "</option>";
    }
    echo "</select>";
    } ?>
    
    </tbody>
    </table>
    <br />
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
    
    <div align="center">
    <input type="submit" value="Update" />
    <input type="button" value="zurueck" onclick="back()">
    </div>
    
    <br />
    </form>
    <br />
     <div class="contentText"></div>
            </div>
    
            </div></div></div>
    
            <div id="footer"><a href="#">web development</a> by <a href="#">Patt</a></div>
    </body>
    </html>


  • #2
    Entweder mal nach "mysqli php connect" Googeln (http://php.net/manual/de/function.mysqli-connect.php)
    oder halt einfach überall da wo "mysql" steht ein "mysqli" hinsetzen.

    EDIT: Ja gut "einfach überall das austauschen" wäre dann auch nich machbar, weil man dann bei bsp: "mysqli_query($db (in deinem fall "$dbName"), "SELECT * FROM");" machen müsste.

    Kommentar


    • #3
      Eben das austauschen hatte ich probiert!
      fur den Rest reichen aber meine Kenntnisse nicht.

      Kommentar


      • #4
        Dein Problem ist scheinbar kein technisches, sondern ein logisches. Du musst erstmal definieren, was du überhaupt machen willst und wo du nicht weiter kommst. Was funktioniert nicht? Was heisst "funktioniert nicht" (ist/soll Zustand)? Welche Fehlermeldungen bekommst du? Was bedeuten die?

        aber mein Skill bekommt die Änderungen nicht hin
        Ja dann ändere das, du hast doch scheinbar eine verwertbare Quelle mit Anhaltspunkten gefunden, jetzt musst du lernen, lernen, lernen (Minimalbeispiel?). So wie du schreibst, und ohne zu sehen was du probiert hast, sieht das erstmal aus wie "macht ihr das mal für mich".
        You know, my wife sometimes looks at me strangely. „Duncan“, she says, „there's more to life than Solaris“. Frankly, it's like she speaks another language. I mean, the words make sense individually, but put them together and it's complete nonsense.

        Kommentar


        • #5
          Die connect.php
          PHP-Code:
          <?php
          $dbHost 
          "localhost";
          $dbUser "d02aa999";
          $dbPass "7777bl321";
          $dbName "d02aa999";

          $mysqli = new mysqli($dbHost$dbUser$dbPass$dbName);

          // Bei Fehler Abbruch mit Fehlermeldung
          if ($mysqli->connect_errno) {
              exit(
          "Failed to connect to MySQL: (" $mysqli->connect_errno ") " $mysqli->connect_error);
          }
          // Zeichenkodierung für die Verbindung vorgeben
          $mysqli->set_charset("utf8");
          ?>
          siehe dazu http://php.net/manual/en/mysqli.examples-basic.php

          Die Verbindungskennung heisst nun $mysqli und nicht mehr $connect, das sollte dir nun bei eingeschleiftem Error-Reporting nun überall dort wo du eine Datenabfrage hast einen Fehler werfen, zudem erkennt man später sofort welche API (mysqli oder PDO)verwendet wurde.. Dazu gehst du dann in die Zeile, nimmst die mysql Anweisung und schaust dir im Handbuch an was dort jeweils im roten Kasten als Empfehlung für die Ersatzfunktion steht.

          Beispiel
          PHP-Code:
            $sql mysql_query("SELECT customers_name, date_purchased, orders_id, orders_status  from orders where orders_id between $id and $id2 ORDER BY orders_id asc"); 
          Handbuch zu mysql_query
          Also wird daraus
          PHP-Code:
          $sql $mysqli->query("SELECT customers_name,...")); 
          Du kannst auch die prozedurale Schreibweise nehmen, wenn die dir mehr liegt, nur mischen solltest du die beiden Varianten besser nicht.
          Beschäftige dich auch mit dem Thema Sicherheit.
          Darüber hinaus solltest du das neu schreiben, in validem HTML5 mit CSS und unter Anwendung des EVA-Prinzips.
          Du solltest dann auch den Kontextwechsel beachten und Dinge die der Browser mitbringt, nicht versuchen nach zu bauen
          wie
          HTML-Code:
          <input type="button" value="zurueck" onclick="back()">
          Habe gerade deinen Footer gesehen,
          HTML-Code:
             <div id="footer"><a href="#">web development</a> by <a href="#">Patt</a>
          Dann zeig mal was du kannst.

          Kommentar


          • #6
            Für die ganz faulen gibt es auch sowas: https://github.com/e-sites/php-mysql-mysqli-wrapper

            Deine Sicherheitslücken bleiben sowieso die gleichen - egal ob mit mysql oder mysqli.

            Kommentar


            • #7
              @protestix: Vielen Dank! Durch deinen Angaben konnte ich die betreffenden Stellen ändern und es funktioniert nun!

              Der Footer ist nicht von mir selbst Das hatte jemand anderes gemacht. Ich bin eher der try and error Typ. )))))

              @sboesch: Klingt interessant, ich habe aber nicht kapiert wie ich es hätte einsetzen sollen

              Kommentar


              • #8
                Das Ding ist nicht zu empfehlen, mach es lieber richtig und nimm mysqli oder PDO. Ich empfehle immer PDO, die Bedienung ist einfacher, wenn man sich erstmal an die Objekt-Syntax gewöhnt hat.
                Deine Sicherheitslücken bleiben sowieso die gleichen - egal ob mit mysql oder mysqli.
                Falsche Einstellung^^' Wenn man jetzt eh umstellen muss, kann man es auch gleich sicher machen.
                Relax, you're doing fine.
                RTFM | php.de Wissenssammlung | Datenbankindizes | Stay fit

                Kommentar


                • #9
                  Zitat von chorn Beitrag anzeigen
                  Dein Problem ist scheinbar kein technisches, sondern ein logisches. Du musst erstmal definieren, was du überhaupt machen willst und wo du nicht weiter kommst. Was funktioniert nicht? Was heisst "funktioniert nicht" (ist/soll Zustand)? Welche Fehlermeldungen bekommst du? Was bedeuten die?



                  Ja dann ändere das, du hast doch scheinbar eine verwertbare Quelle mit Anhaltspunkten gefunden, jetzt musst du lernen, lernen, lernen (Minimalbeispiel?). So wie du schreibst, und ohne zu sehen was du probiert hast, sieht das erstmal aus wie "macht ihr das mal für mich".
                  Sorry aber genau diese Antwortart mag ich nicht!

                  Ich bin nicht davon ausgegangen, dass dies jemand komplett für mich macht, sondern mir einen Schups in die richtige Richtung gibt. siehe protestix!

                  Klar, ich kann auch ein Programmierstudium machen damit ich es kann, aber nur wegen dem einen Skript, was ich vielleicht bei php10 wieder anfassen muss so einen großen Aufwand zu betreiben macht wohl wenig Sinn.

                  Deswegen vielleicht das nächste mal einfach "schweigen" und dir denken "wieder so ein blöder Anfänger"..... Du sparst dir Zeit und keinem dem du so antwortest hilft es wirklich weiter.

                  Grüße

                  Kommentar


                  • #10
                    Zitat von VPh Beitrag anzeigen
                    Das Ding ist nicht zu empfehlen, mach es lieber richtig und nimm mysqli oder PDO. Ich empfehle immer PDO, die Bedienung ist einfacher, wenn man sich erstmal an die Objekt-Syntax gewöhnt hat.

                    Falsche Einstellung^^' Wenn man jetzt eh umstellen muss, kann man es auch gleich sicher machen.
                    Reicht es nicht aus, wenn das Skript mit htaccess geschützt ist?

                    Kommentar


                    • #11
                      Das hat nichts damit zu tun.
                      Wenn du ein Formular hast, möchtest du, dass es auch jemand ausfüllt und abschickt, ansonsten braucht man ja kein Formular.
                      Wenn du jedoch Daten entgegen nimmst, hast du ein Einfallstor. Wenn du dort nicht siebst was dort rein darf dann kommt eben auch mal unerwünschtes rein.

                      Fiktives Beispiel
                      Du lässt alles ungefiltert herein also auch ein "delete all my data" obwohl du nur den Buchstaben D daraus brauchst.
                      Wenn du nun ein Filter hast wo nur der Buchstabe D durchgelassen wird, dann kann dir das nicht passieren das ein Buchstabe e mit durchrutscht.

                      Kommentar


                      • #12
                        Sorry aber genau diese Antwortart mag ich nicht!
                        Für deine Befindlichkeit bin ich nicht zuständig, mit solchen Antworten musst du halt rechnen wenn du ein Fachforum besuchst.

                        Deswegen vielleicht das nächste mal einfach "schweigen" und dir denken "wieder so ein blöder Anfänger"..... Du sparst dir Zeit und keinem dem du so antwortest hilft es wirklich weiter.
                        Nö. Kann ich ja auch sagen: Dann geh halt wo anders hin. Spar du dir doch die Zeit. Kann von mir aus jeder lesen was ich von solchen "Fragen" halte. Und was verleitet dich dazu mir irgendwelche Beleidigungen in den Kopf legen zu wollen? Wenn du nicht lernwillig bist, überleg dir halt ob du hier richtig bist, gerade als Anfänger.

                        Ich bin nicht davon ausgegangen, dass dies jemand komplett für mich macht, sondern mir einen Schups in die richtige Richtung gibt. siehe protestix!
                        Aha, komm doch einfach zur Sache und sag gleich was du willst, hinter gross Reden schwingen ist unglaubwürdig. Und von anderen zu erwarten, dass sie deine Befindlichkeiten raten ist asozial. Und das nur als "Schups in die richtige Richtung" zu bezeichnen halte ich für eine Beleidigung, der Umfang des Postings liegt weit über dem was du zur Problemfindung beigetragen hast.

                        Klar, ich kann auch ein Programmierstudium machen damit ich es kann, aber nur wegen dem einen Skript, was ich vielleicht bei php10 wieder anfassen muss so einen großen Aufwand zu betreiben macht wohl wenig Sinn.
                        Klassische Übertreibung. Und unlogisch. Was ist dein Script denn jetzt, 3 Jahre Studium mit Bachlor und Verteidigung? Oder doch nur das eine Script? Bring die Analyse doch einfach mal ganz konkret ohne Blafasel.

                        Von deiner Meinungsmache mal ganz abgesehen: Du bist auf keine der Fragen eingegangen. Einfach mal rummotzen hier? Guck halt wie weit du mit dem Stil in der realen Welt kommst.
                        You know, my wife sometimes looks at me strangely. „Duncan“, she says, „there's more to life than Solaris“. Frankly, it's like she speaks another language. I mean, the words make sense individually, but put them together and it's complete nonsense.

                        Kommentar


                        • #13
                          Iss mal n Snickers
                          Relax, you're doing fine.
                          RTFM | php.de Wissenssammlung | Datenbankindizes | Stay fit

                          Kommentar


                          • #14
                            Zitat von protestix Beitrag anzeigen
                            Das hat nichts damit zu tun.
                            Wenn du ein Formular hast, möchtest du, dass es auch jemand ausfüllt und abschickt, ansonsten braucht man ja kein Formular.
                            Wenn du jedoch Daten entgegen nimmst, hast du ein Einfallstor. Wenn du dort nicht siebst was dort rein darf dann kommt eben auch mal unerwünschtes rein.

                            Fiktives Beispiel
                            Du lässt alles ungefiltert herein also auch ein "delete all my data" obwohl du nur den Buchstaben D daraus brauchst.
                            Wenn du nun ein Filter hast wo nur der Buchstabe D durchgelassen wird, dann kann dir das nicht passieren das ein Buchstabe e mit durchrutscht.
                            ok das leuchtet ein, aber mein Formular benutze nur ich, dann sollte htaccess reichen

                            Kommentar


                            • #15
                              Zitat von VPh Beitrag anzeigen
                              Iss mal n Snickers
                              oder vielleicht noch eines

                              Kommentar

                              Lädt...
                              X