tutorials.de Buch-Aktion 05/2012
Seite 1 von 2 12 LetzteLetzte
ERLEDIGT
NEIN
ANTWORTEN
24
ZUGRIFFE
561
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Slain Slain ist offline Mitglied
    Registriert seit
    Feb 2011
    Ort
    Zehdenick
    Beiträge
    13
    Mahlzeit miteinander habe oben beschriebenes Problem,
    hier der Code:
    PHP-Code:
        function getSetting($setting){
            
    $res=mysql::safe_query("SELECT value FROM `settings` WHERE setting=".$setting."");
            while(
    $row=mysql_fetch_row($res)){
                echo 
    $row[0];
            }
        } 
    hier noch die safe_query function:
    PHP-Code:
        function safe_query($query){
        
    mysql_query(mysql_real_escape_string($query));    
        } 
    habe schon alles mögliche ausprobiert aber es hilft einfach nix -.-
    bin für jede hilfe dankbar
     

  2. #2
    Fanseite Fanseite ist offline Mitglied Bronze
    Registriert seit
    Feb 2012
    Beiträge
    33
    Entweder ist dein Prefix falsch oder du hast eine Spalte angegeben die nicht vorhanden ist.
    Oder Probiere es mal so :
    PHP-Code:
     function getSetting($setting){
            
    $res=mysql::safe_query('SELECT value, setting FROM `settings` WHERE setting="'.$setting'"');
            while(
    $row=mysql_fetch_row($res)){
                echo 
    $row[0];
            }
        } 
     

  3. #3
    Slain Slain ist offline Mitglied
    Registriert seit
    Feb 2011
    Ort
    Zehdenick
    Beiträge
    13
    funktioniert leider auch nicht habe echt schon alles durch verzweifel hier langsam
     

  4. #4
    Avatar von Yaslaw
    Yaslaw Yaslaw ist gerade online n/a
    tutorials.de Moderator
    Registriert seit
    Dec 2007
    Ort
    Winterthur(CH)
    Beiträge
    5.205
    Da die diese Art von Fragen sehr oft kommt, habe ich mal ein Tutorial geschrieben wie man am besten auf Fehlersuche geht.
    [PHP] [MySQL] Debug Queries
    Geh es doch mal durch und falls du die Lösung nicht findest, poste mal das ausgegebe SQL-Statement ins Forum.

    Du wirst sehen, dass dein mysql_real_escape_string() auf das ganze SQl alle deine Anfüuhrungszeichen innerhalb des SQL-Strings escapt. Damit kann MySQL nix mehr anfangen. mysql_real_escape_string() verwendet man auf die einzelnen Werte, nicht aber auf das ganez SQL.
     
    ---------------------------------------------------------------------------------------------------
    item: Ich habe es mir aus gesundheitlichen Gründen abgewöhnt unformatierten Code zu lesen (Auch SQL-Statements kann man formatieren!)
    item: Tutorial: [PHP][MySQL] Debug Queries
    item: Schreibt mir keine PN mit Fragen die im Forum beantwortet werden können - ich mache kein persönliches coaching
    item: Bitte zur besseren Lesbarkeit PHP-Code in [PHP]...[/PHP], SQL in [SQL]...[/SQL], Visual Basic in [VB]...[/VB] etc. schreiben

  5. #5
    Fanseite Fanseite ist offline Mitglied Bronze
    Registriert seit
    Feb 2012
    Beiträge
    33
    Was willst du eigendlich damit bewirken ? $res=mysql::safe_query
    Warum sind da zwei doppel Punkte ?

    Versuch es mal nochmal so :

    PHP-Code:
    function getSetting($setting){
            
    $res=mysql::safe_query('SELECT value, setting FROM `settings` WHERE setting = "'.$setting'"');
            while(
    $row=mysql_fetch_row($res)){
                echo 
    $row[0];
            }
        } 
    Und hast du eine Verbindung zu Datenbank erstellt ?
     

  6. #6
    Avatar von Yaslaw
    Yaslaw Yaslaw ist gerade online n/a
    tutorials.de Moderator
    Registriert seit
    Dec 2007
    Ort
    Winterthur(CH)
    Beiträge
    5.205
    @Fanseite:
    Mit 2 : ruft er eine statische Methode seiner Klasse mysql auf. Ich seh jedoch zwar in der Definition der Methode das Wort static nicht.....

    Ansonsten wie oben geschrieben. Das Problem liegt hier:
    Du wirst sehen, dass dein mysql_real_escape_string() auf das ganze SQl alle deine Anfüuhrungszeichen innerhalb des SQL-Strings escapt. Damit kann MySQL nix mehr anfangen. mysql_real_escape_string() verwendet man auf die einzelnen Werte, nicht aber auf das ganez SQL.
     
    ---------------------------------------------------------------------------------------------------
    item: Ich habe es mir aus gesundheitlichen Gründen abgewöhnt unformatierten Code zu lesen (Auch SQL-Statements kann man formatieren!)
    item: Tutorial: [PHP][MySQL] Debug Queries
    item: Schreibt mir keine PN mit Fragen die im Forum beantwortet werden können - ich mache kein persönliches coaching
    item: Bitte zur besseren Lesbarkeit PHP-Code in [PHP]...[/PHP], SQL in [SQL]...[/SQL], Visual Basic in [VB]...[/VB] etc. schreiben

  7. #7
    Fanseite Fanseite ist offline Mitglied Bronze
    Registriert seit
    Feb 2012
    Beiträge
    33
    Also müsste er es so machen :

    PHP-Code:
      function getSetting($setting){
    $setting mysql_real_escape_string($_GET oder $_POST['setting']);
            
    $res=mysql::safe_query("SELECT value FROM `settings` WHERE setting=".$setting."");
            while(
    $row=mysql_fetch_row($res)){
                echo 
    $row[0];
            }
        }  

     function 
    safe_query($query){
        
    mysql_query($query);    
        } 
     

  8. #8
    Avatar von Yaslaw
    Yaslaw Yaslaw ist gerade online n/a
    tutorials.de Moderator
    Registriert seit
    Dec 2007
    Ort
    Winterthur(CH)
    Beiträge
    5.205
    Jepp. Und die Methode safe_query() müsste statisch sein
    PHP-Code:
    static function safe_query($query){ 
     
    ---------------------------------------------------------------------------------------------------
    item: Ich habe es mir aus gesundheitlichen Gründen abgewöhnt unformatierten Code zu lesen (Auch SQL-Statements kann man formatieren!)
    item: Tutorial: [PHP][MySQL] Debug Queries
    item: Schreibt mir keine PN mit Fragen die im Forum beantwortet werden können - ich mache kein persönliches coaching
    item: Bitte zur besseren Lesbarkeit PHP-Code in [PHP]...[/PHP], SQL in [SQL]...[/SQL], Visual Basic in [VB]...[/VB] etc. schreiben

  9. #9
    Fanseite Fanseite ist offline Mitglied Bronze
    Registriert seit
    Feb 2012
    Beiträge
    33
    So im groß und ganzen machen es mal so :


    PHP-Code:
      function getSetting($setting){
    $setting mysql_real_escape_string($_GET oder $_POST['setting']);
            
    $res=mysql::safe_query(' SELECT value, setting FROM `settings` WHERE setting = "'.$setting.'" ');
            while(
    $row=mysql_fetch_row($res)){
                echo 
    $row[0];
            }
        }  

     static function 
    safe_query($query){
        
    mysql_query($query);    
        } 
     

  10. #10
    Avatar von Raisch
    Raisch Raisch ist offline extraordinary bit
    Registriert seit
    Aug 2011
    Ort
    Berlin
    Beiträge
    333
    Zitat Zitat von Fanseite Beitrag anzeigen
    So im groß und ganzen machen es mal so :


    PHP-Code:
      function getSetting($setting){
    $setting mysql_real_escape_string($_GET oder $_POST['setting']);
            
    $res=mysql::safe_query(' SELECT value, setting FROM `settings` WHERE setting = "'.$setting.'" ');
            while(
    $row=mysql_fetch_row($res)){
                echo 
    $row[0];
            }
        }  

     static function 
    safe_query($query){
        
    mysql_query($query);    
        } 
    Dann braucht er diesen Part aber auch nicht mehr:
    Code PHP:
    1
    
    mysql::safe_query
    dafür kann er dann:
    Code PHP:
    nutzen.

    Quasi so:
    Code PHP:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    
    function getSetting( $setting )
    {
        $setting = mysql_real_escape_string( $setting );
     
        $res = mysql_query("
            SELECT
                value,
                setting
            FROM
                settings
            WHERE
                setting = '$setting';
        ");
     
        while( $row = mysql_fetch_array( $res, MYSQL_ASSOC ) )
        {
            // mach was mit $row['value'] und $row['setting']
        }
    }

    Gruß
    Geändert von Raisch (03.02.12 um 12:49 Uhr)
     

  11. #11
    Avatar von Yaslaw
    Yaslaw Yaslaw ist gerade online n/a
    tutorials.de Moderator
    Registriert seit
    Dec 2007
    Ort
    Winterthur(CH)
    Beiträge
    5.205
    EIn Tipp an Rande. Rein aus Debugging-Gründen und der Lesbarkeit zuliebe rate ich dir, anzugewöhnen den SQL-Code und die SQL-Ausführung zu trennen.
    PHP-Code:
        $sql="
            SELECT
                value,
                setting
            FROM
                settings
            WHERE
                setting = '
    {$setting}';";
        
    $res mysql_query($sql); 
    Siehe dazu auch [PHP] [MySQL] Debug Queries
    Raisch und Fanseite bedanken sich. 
    ---------------------------------------------------------------------------------------------------
    item: Ich habe es mir aus gesundheitlichen Gründen abgewöhnt unformatierten Code zu lesen (Auch SQL-Statements kann man formatieren!)
    item: Tutorial: [PHP][MySQL] Debug Queries
    item: Schreibt mir keine PN mit Fragen die im Forum beantwortet werden können - ich mache kein persönliches coaching
    item: Bitte zur besseren Lesbarkeit PHP-Code in [PHP]...[/PHP], SQL in [SQL]...[/SQL], Visual Basic in [VB]...[/VB] etc. schreiben

  12. #12
    Fanseite Fanseite ist offline Mitglied Bronze
    Registriert seit
    Feb 2012
    Beiträge
    33
    Okay Vielen danke das werde ich auch brauchen denk ich
     

  13. #13
    Avatar von Raisch
    Raisch Raisch ist offline extraordinary bit
    Registriert seit
    Aug 2011
    Ort
    Berlin
    Beiträge
    333
    Zitat Zitat von Yaslaw Beitrag anzeigen
    EIn Tipp an Rande. Rein aus Debugging-Gründen und der Lesbarkeit zuliebe rate ich dir, anzugewöhnen den SQL-Code und die SQL-Ausführung zu trennen.
    PHP-Code:
        $sql="
            SELECT
                value,
                setting
            FROM
                settings
            WHERE
                setting = '
    {$setting}';";
        
    $res mysql_query($sql); 
    Siehe dazu auch [PHP] [MySQL] Debug Queries
    Wo Du Recht hast, hast Du Recht.

    Gruß
     

  14. #14
    Slain Slain ist offline Mitglied
    Registriert seit
    Feb 2011
    Ort
    Zehdenick
    Beiträge
    13
    danke an allen aber es geht damit immer noch nicht

    die query abfrage is aber auch richtig
    SELECT value FROM `settings` WHERE setting="title"
    Geändert von Slain (03.02.12 um 13:55 Uhr)
     

  15. #15
    Registrierer Registrierer ist offline Mitglied Gold
    Registriert seit
    Mar 2009
    Beiträge
    171
    Zitat Zitat von Slain Beitrag anzeigen
    danke an allen aber es geht damit immer noch nicht
    die query abfrage is aber auch richtig
    SELECT value FROM `settings` WHERE setting="title"
    Vielleicht lässt Du uns mal ein Schema der Tabelle sehen?
     

Ähnliche Themen

  1. Antworten: 30
    Letzter Beitrag: 29.07.10, 15:39
  2. Antworten: 9
    Letzter Beitrag: 14.09.08, 20:22
  3. Antworten: 9
    Letzter Beitrag: 22.04.08, 10:58
  4. Antworten: 4
    Letzter Beitrag: 21.09.07, 11:53
  5. Antworten: 3
    Letzter Beitrag: 18.05.07, 13:12