tutorials.de Buch-Aktion 05/2012
Like Tree1Danke
  • 1 Beitrag von Yaslaw
ERLEDIGT
JA
ANTWORTEN
5
ZUGRIFFE
232
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Avatar von bauchinj
    bauchinj bauchinj ist offline Mitglied Gold
    Registriert seit
    Oct 2009
    Ort
    Oberösterreich
    Beiträge
    223
    Hallo wieder mal!

    Hab ein SQL-Statement mit einer PHP-Variablen in ein Datenbankfeld geschrieben, in etwa so:

    Datenbank: database
    Tabelle: table
    Feld: sql (TEXT)

    SELECT * FROM `other_table` WHERE `value`='".$wert."'

    Hab einfach angenommen, wenn ich dieses Feld mittels PHP auslesen, als query-string verwende und $wert einen plausieblen Wert gebe, wird dieser Wert erstens eingesetzt und zweitens die Query richtig ausgeführt:
    mysql_db_query($database,$sql);

    Wenn ich mir nun aber $sql ausgeben lasse, so bekomme ich das sql-statement mit '".$wert."' ausgegeben => $wert wird nie befüllt sondern als String erkannt.gibt es hierfür eine Lösung? Weiß auch nicht so recht, wie ich bei Dr. Google suchen soll...

    Danke für eure Antworten
     

  2. #2
    Avatar von Bratkartoffel
    Bratkartoffel Bratkartoffel ist offline gebratene Kartoffel
    tutorials.de Premium-User
    Registriert seit
    Jun 2007
    Ort
    Passau (Niederbayern)
    Beiträge
    1.394
    Hallo,

    ohne Codeausschnitt der entsprechenden Stelle kann ich nur raten.
    Ich denke mal, du baust den String mit einfachen Anführungszeichen und hast das $wert direkt drin stehen.
    Somit werden Variablen nicht ersetzt. Falls ich richtig liege, dann ziehe mal die Variable aus dem String raus, wie folgt:

    PHP-Code:
    $wert 'SELECT ......' $wert 'bla bla bla'
    Falls du das schon machst, und es trotzdem falsch geschrieben wird, dann lass dir mal mit Syntax-Highlightning anzeigen, ob deine Anführungszeichen korrekt interpretiert werden.

    Gruß
    BK
     
    Über eine gute Bewertung freut sich jeder ;)
    Bitte erledigte Threads als "Erledigt" markieren.

    "Though a program be but three lines long, someday it will have to be maintained.''
    -- Geoffrey James, "The Tao of Programming"

  3. #3
    Avatar von bauchinj
    bauchinj bauchinj ist offline Mitglied Gold
    Registriert seit
    Oct 2009
    Ort
    Oberösterreich
    Beiträge
    223
    Danke für deine Antwort!


    Im Source funktionieren meine Statements mit Variablen - mein Problem ist, dass ich ein Statement (mit PHP-Variable) in der Datenbank gespeichert habe und mittels php auslesen und die Variable als Variable und nicht als String verwenden möchte: aus $wert (in DB) soll zB 6 (in php) werden und nicht $wert bleiben.

    Lese einfach das Feld "sql" aus und speichere diesen Wert in die Variable $sql.

    dies wiederum verwende ich folgendermaßen:
    PHP-Code:
    mysql_query($sql); 
    Leider bekomme ich hier nie ein Ergebnis, da in $sql nicht '6' steht sondern $wert.

    etwas klarer?
     

  4. #4
    Avatar von Yaslaw
    Yaslaw Yaslaw ist offline n/a
    tutorials.de Moderator
    Registriert seit
    Dec 2007
    Ort
    Winterthur(CH)
    Beiträge
    5.205
    du suchst eval()

    Hier ien Beispiel:
    PHP-Code:
    <?php 
        $string 
    'Wert: $value';
        
    var_dump($string);
        
        
    $value 6;
        
    $parsedString = eval("return \"{$string}\";");
        
    var_dump($parsedString);
    ?>
    Ein weiteres Beispiel findest du unter http://ch.php.net/manual/de/function.eval.php
    bauchinj bedankt 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

  5. #5
    Avatar von Bratkartoffel
    Bratkartoffel Bratkartoffel ist offline gebratene Kartoffel
    tutorials.de Premium-User
    Registriert seit
    Jun 2007
    Ort
    Passau (Niederbayern)
    Beiträge
    1.394
    Hallo,

    du könntest es auch so machen:

    PHP-Code:
    $sql str_replace('$wert'$wert$sql); 
    Siehe auch str_replace()
    Gruß
    BK
     
    Über eine gute Bewertung freut sich jeder ;)
    Bitte erledigte Threads als "Erledigt" markieren.

    "Though a program be but three lines long, someday it will have to be maintained.''
    -- Geoffrey James, "The Tao of Programming"

  6. #6
    Avatar von bauchinj
    bauchinj bauchinj ist offline Mitglied Gold
    Registriert seit
    Oct 2009
    Ort
    Oberösterreich
    Beiträge
    223
    @yaslaw - wieder mal die richtige Lösung parat, Danke!
    @Bratkartoffel - Danke auch dir!
     

Ähnliche Themen

  1. Antworten: 6
    Letzter Beitrag: 07.08.09, 22:12
  2. Antworten: 3
    Letzter Beitrag: 29.11.08, 20:08
  3. MySQL: ERROR 2013 (HY000): Lost connection to MySQL server during query
    Von blumshuett im Forum Relationale Datenbanksysteme
    Antworten: 2
    Letzter Beitrag: 07.06.06, 23:23
  4. mysql: mysql-server: mysql.sock fehlt (Suse 9.1)
    Von zappoth im Forum Relationale Datenbanksysteme
    Antworten: 2
    Letzter Beitrag: 08.05.06, 18:06
  5. Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)
    Von strandjunge im Forum Relationale Datenbanksysteme
    Antworten: 0
    Letzter Beitrag: 19.01.05, 15:33

Stichworte