SQL-Ergebnis als Variable speichern

  • Hallo zusammen,
    ich bin relativ neu im Thema und habe gerade eine Frage, die für Euch vermutlich relativ einfach zu beantworten ist. Ich stehe da gerade irgendwie auf dem Schlauch...

    Leider komme ich mit der Hilfe und auch mit den Themen im Forum nicht weiter.

    Ich möchte das Ergebnis einer SQL-Abfrage (SQLite) in einer Variablen speichern,
    Meine Abfrage:

    SQL
    SELECT Name FROM Einstellungen;


    Als Ergebnis bekomme ich (mit einem SQL-Browser) den korrekten Namen geliefert. Und diesen möchte ich nun als Variable speichern.
    Soweit so gut, in meinem Script bekomme ich aber nur die '0' (als Ausgabe auf der Konsole) zurück:

    PHP
    $test = _SQLite_Exec(-1, "SELECT Name FROM Einstellungen;")
    	ConsoleWrite($test)


    Über Eure Tipps und Hilfe würde ich mich freuen.

    Einmal editiert, zuletzt von commander (5. Juli 2013 um 13:10)

  • Warum schaut keiner in die Hilfe? Wozu haben wir die deutsche Hilfe? :cursing:

    [autoit]

    _SQLite_Exec

    [/autoit]

    Da steht alles, auch was die Funktion zurückgibt.

    MfG

    P.S.: Schau dir mal wegen deinem Problem

    [autoit]

    _SQLite_Query
    ;und
    _SQLite_FetchData

    [/autoit]

    an. ;)

    There's a joke that C has the speed and efficieny of assembly language combined with readability of....assembly language. In other words, it's just a glorified assembly language. - Teh Interwebz

    C makes it easy to shoot yourself in the foot; C++ makes it harder, but when you do, you blow off your whole leg. - Bjarne Stroustrup
    Genie zu sein, bedeutet für mich, alles zu tun, was ich will. - Klaus Kinski

  • Vielen Dank für Deine Antwort PainTain.

    Allerdings habe ich in die Hilfe geschaut (und diese finde ich sehr gut!), sowie das Forum durchsucht.
    Das hatte ich in meinem Post auch erwähnt.

    Ich habe es nun erneut mit Query und FetchData versucht, allerdings verstehe ich es immer noch nicht.
    Als Ausgabe erhalte ich nun eine, sich ändernde Zahl, zurück (z. B. "104648728").

    Hier meine Testfunktion:

    PHP
    Func test()
    	Local $hQuery, $aRow
    	_SQLite_Query($hDB, "SELECT Name FROM Einstellungen;", $hQuery)
    	_SQLite_FetchData($hQuery, $aRow)
    	$blubber = String($hQuery)
    	ConsoleWrite($blubber)
    EndFunc   ;==>test

    Zudem beendet sich die SQL-Verbindung nicht sauber (unfinalizies Statement), aber das ist dann eine andere Baustelle...

  • [autoit]

    Func test()
    Local $hQuery, $aRow
    _SQLite_Query($hDB, "SELECT Name FROM Einstellungen;", $hQuery)
    _SQLite_FetchData($hQuery, $aRow)
    $blubber = String($hQuery)
    ConsoleWrite($blubber)
    EndFunc ;==>test

    [/autoit]

    Du fragst nicht die abgefangenen Daten ab sondern das Queryhandle.

    Versuchs mal so:

    [autoit]

    Func test()
    Local $hQuery, $aRow
    _SQLite_Query($hDB, "SELECT Name FROM Einstellungen;", $hQuery)
    _SQLite_FetchData($hQuery, $aRow)
    $blubber = String($aRow[0]) ; Die Zahl in der Klammer gibt die Abgefragte Spalte an (also bei 2 Spalten wäre die erste Spalte 0 und die 2te Spale 1 usw...)
    ConsoleWrite($blubber)
    EndFunc ;==>test

    [/autoit]
  • Und da du sicher nicht nur den ersten Namen haben willst sondern alle solltest du wie auch in den Beispielen zu FetchData eine while Schleife verwenden um alle Ergebniszeilen deiner SQL Abfrage auszulesen. FetchData liefert dir nämlich immer nur eine Zeile.

  • Vielen Dank für Eure Hilfe!

    Mit der Anpassung von TheLuBu habe ich das Ergebnis bekommen, welches ich wollte.
    Und viel wichtiger: Ich habe es nun verstanden!

    Kleine Ursache, große Wirkung (wie so oft).

  • Auch wenn du es jetzt verstanden hast. Ich verstehe nicht, warum du nicht das Beispiel aus der Hilfe genommen hast.

  • @m-obi:
    Vermutlich weil ich, wie erwähnt, neu im Thema bin und die Beispiele nicht verstanden habe.
    Mir war nicht klar, das ich den Wert noch aus dem Array ziehen muss.
    Und dank der Antworten habe ich es nun durchschaut.

    War das ein Fehler, dass ich hier im Forum eine Frage gestellt habe?
    Ich dachte das Foren (unter anderem) dafür da sind.
    Wenn ich etwas falsches gemacht habe, dann tut es mir leid.

  • Dass man es aus dem Array holen muss, sieht man schon anhand dieser Zeile in dem Beispiel.

    [autoit]

    $sMsg &= $aRow[0]

    [/autoit]


    Und falsch hast du nix gemacht. Ist schon in Ordnung, dass du dich hier gemeldet hast.
    Nur evtl. müsste man das Beispiel in der Hilfe ein wenig verständlicher umschreiben.