Ankündigung

Einklappen
Keine Ankündigung bisher.

[Erledigt] Fehler bei SQL abfrage mit PHP-variable

Einklappen

Neue Werbung 2019

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

  • [Erledigt] Fehler bei SQL abfrage mit PHP-variable

    moin moin,

    gleich das zweite problem heute, aber ich hoff es ist nicht halb so blöd wie das erste.

    ich übergebe mit GET eine Variable von seite zu seite. die variable kommt auch an wie sie soll.

    wenn ich sie allerdings in eine MySQL abfrage einbette, klappt garnix. die variable ist vorhanden (hab $angebotsnummer mit echo zwischendurch mal ausgeben lassen. korrekt belegt.)
    allerdings bekomme ich den fehler :

    11OKT3Unknown column '11OKT3' in 'where clause'
    Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in E:\Programme\xampp\htdocs\site\einangebot.php on line 51

    das erste 11OKT3 ist eine echo-ausgabe von $angebotsnummer,
    es ist der wert in der spalte angebotsnummer dieses datensatzes.


    wenn ich den wert der variable $angebotsnummer direkt in die abfrage einfüge, läuft alles problemlos.

    die variable ist da, die spalte und der wert in der DB sind da und im syntax kann ich jetzt keinen fehler sehen.

    PHP-Code:
        <div id="stellenangebote">
            
            <? $db_host ="localhost";
                    $db_user ="root";
                    $db_pwd ="produktion2011";
                    $db_name="stellenangebote";
            

                    $verbindung = @mysql_connect($db_host, $db_user, $db_pwd);
                    mysql_select_db($db_name, $verbindung)or die ("Datenbank konnte nicht SELECTed werden: " .mysql_error()); 
                    
                    
                            
                echo '    <div id="angebot">';
                        echo $angebotsnummer;
                    $sql= 'SELECT datum, stellenbezeichnung, stellenbeschreibung, ort, vztz, anforderungen, angebot, frist  FROM angebote WHERE angebotsnummer='.$angebotsnummer;
            $result=mysql_query($sql,$verbindung);
            $i=0;
            echo mysql_error();
            $aus=mysql_fetch_array($result);
                       $daten[$i][0]=$i;
                        $daten[$i][1]=$aus['datum'];
                        $daten[$i][2]=$aus['stellenbezeichnung'];
                        $daten[$i][3]=$aus['stellenbeschreibung'];
                        $daten[$i][4]=$aus['ort'];
                        $daten[$i][5]=$aus['vztz'];
                        $daten[$i][6]=$aus['anforderungen'];
                        $daten[$i][7]=$aus['angebot'];
                        $daten[$i][8]=$aus['frist'];
                        
                    
                        
                        echo '<tr><td>';
                        print_r($daten[$i][1]);
                        echo'</td><td>';
                        
                        print_r($daten[$i][2]);
                        echo'</td><td>';
                        print_r($daten[$i][3]);
                        echo'</td><td>';
                        print_r($daten[$i][4]);
                        echo'</td><td>';
                        
                        
                        
                        
                    
                /*$_SESSION['idangebot'] = $daten[    */

                echo '    </table>
                        </div>    <! schliesst angebot > ';
    was stimmt denn da nicht? warum "unknown column"???

  • #2
    Was steht in $angebotsnummer drin? Ein String? Den solltest du in Hochkommata setzen...

    Kommentar


    • #3
      in $angebotsnummer steht ein wert wie zum beispiel 11OKT1 drin.

      ich hab auch schon versucht, dass in der abfrage noch in hochkommata zu setzen, also in der form:

      PHP-Code:
      $sql'SELECT datum, stellenbezeichnung, stellenbeschreibung, ort, vztz, anforderungen, angebot, frist  FROM angebote WHERE angebotsnummer='.'$angebotsnummer'
      aber mir kam das schon vor dem versuch nich so sinnvoll vor. kam auch nix bei raus

      aber ich bin sicher, da gibts jetzt noch ne sinnvolle variante. ich merk ja, das der fehler irgendwie da an dieser stelle liegt. variable is okay, der rest der abfrage is okay, und die DB is auch okay.

      Kommentar


      • #4
        http://www.php.net/manual/de/language.types.string.php Da sind Beispiele, wie man richtig mit Hochkommas arbeitet. Der Ansatz mit Hochkommas ist richtig, nur deine Lösung ist grundfalsch. Schaue insbesondere ins Beispiel mit Arnold Schwarzenegger.

        Ansonsten pauschal schonmal der Hinweis: SQL-Injections.

        Kommentar


        • #5
          tja, danke, ich schau jetzt mal rein, hoffe das ist aufschlußreich.
          ich habe nämlich mit exakt der selben syntax schon in einem anderen programm gearbeitet - lief alles fehlerfrei. deswegen bin ich ja so ratlos.

          SQL injections: mist, du meinst, weil man den übergabewert in der url sehen kann?

          Kommentar


          • #6
            Frag bitte Google nach SQL-Injections, da findest du genug.

            Kommentar


            • #7
              okay!

              Kommentar


              • #8
                okay, jetzt hab ichs kapiert.

                PHP-Code:
                FROM angebote WHERE angebotsnummer ='".$angebotsnummer."'"; 
                vielen dank!

                Kommentar


                • #9
                  Besser noch
                  PHP-Code:
                  mysql_query("SELECT `beispiel` FROM `angebote` WHERE `angebotsnummer` = ".$angebotsnummer.";"); 
                  - wenn es INT ist.

                  oder

                  PHP-Code:
                  mysql_query("SELECT `beispiel` FROM `angebote` WHERE `angebotsnummer` = '".$angebotsnummer."';"); 
                  - wenn es kein INT ist.


                  Und wenn es INT ist, kannst du gegen SQL Injections auch gleich [MAn]intval[/MAN]() verwenden

                  Kommentar

                  Lädt...
                  X