Mit PHP-MYSQLI gezielt mit VB abfragen?

  • PHP

Es gibt 5 Antworten in diesem Thema. Der letzte Beitrag () ist von eminem.

    Mit PHP-MYSQLI gezielt mit VB abfragen?

    Hallo, vor ein paar Tagen habe ich bemerkt das von damals das Tutorial von
    Dodo mit der Sicheren Verbindung zur Datenbank über PHP nicht mehr auf PHP 5.6 klappt.

    Deshalb habe ich beschlossen, die PHP Datei neu zuschreiben und auf MYSQLI anzupassen.

    Mein Problem ist jetzt, das ich es nicht schaffe, einzelne Datensätze wie z.b der User (Test) einzeln auszulesen.
    Über PHP gelingt mir das, nur über VB nicht, denn ich habe versucht den Alten VB Code von Dodo weiter zuverwenden,
    weil er diesen HTTPSecurityLibrary damals auch extra darauf angepasst hat.

    Könnt ihr mir eventuell damit weiterhelfen?

    PHP-Quellcode

    1. <?php
    2. //include("dnp_request.php");
    3. error_reporting( E_ALL | E_STRICT );
    4. ini_set('display_errors', TRUE);
    5. @$db = new mysqli('localhost', 'test_', 'test_', 'test_');
    6. if (mysqli_connect_errno()) {
    7. printf("Verbindung fehlgeschlagen: %s\n", mysqli_connect_error());
    8. exit();
    9. }
    10. if ($resultat = $db->query('SELECT * FROM test_ WHERE Username="Test"')) {
    11. while($daten = $resultat->fetch_object() ){
    12. echo "". $daten->ID, '|' ,$daten->Username, '|' ,$daten->Password;
    13. }
    14. $resultat->close();
    15. } else {
    16. echo "Es konnten keine Daten aus der Datenbank ausgelesen werden";
    17. }
    18. $db->close();
    19. ?>

    Ich weiß das die PHP-Datei noch nicht Sauber und Sicher Programmiert ist, mir geht es erstmal darum diese wieder mit VB zum Laufen zubekommen.


    Nur ein Ausschnitt des VB-Codes:

    VB.NET-Quellcode

    1. col.Add("query", "SELECT * FROM test_ WHERE Username= '" & Username.txt & "'")
    2. Ausgabe.Text = request2.Create("http://www.MeineDomain.de/auslesen.php", col).Replace(vbLf, vbNewLine)


    Das Auslesen funktioniert soweit, nur das festlegen der User Nicht.

    Wie muss ich die PHP-Datei anpassen, damit ich über VB mit diesem Code ein Username übergeben kann?

    Liebe Grüße

    Falsches Unterforum, verschoben.
    - Solaris
    MFG
    LEON
    _______________________________________________
    Entweder man ist Teil der Lösung oder Teil des Problems.

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Solaris“ ()

    Naja, du musst aus VB entweder über GET oder über POST den Usernamen als Parameter an die PHP Seite übergeben und in der PHP Seite musst du die Parameter auswerten und verwenden für die SQL Abfrage und dann eben entsprechend eine Antwort liefern.

    In PHP benötigst du also je nach anfrage ein $_GET[ 'username' ] oder $_POST['username'] zB.
    In deinem VB Code weiß ich nicht was request2 und col ist. Daher kann ich dir nicht mehr sagen.

    LG
    Das ist meine Signatur und sie wird wunderbar sein!
    Hi, also ich hab das jetzt so:

    VB.NET-Quellcode

    1. col.Clear()
    2. col.Add("OUTPUT", "ausgabe")
    3. Dim abfrage As String = request.Create("http://IP-ADRESSE/abfrage.php", col)


    und in der PHP hab ich das so versucht:

    PHP-Quellcode

    1. <?php
    2. //include("dnp_request.php");
    3. $in = $_POST['OUTPUT'];
    4. $var_in = explode('ausgabe', $in);
    5. error_reporting( E_ALL | E_STRICT );
    6. ini_set('display_errors', TRUE);
    7. @$db = new mysqli('localhost', 'test_', 'test_', 'test_');
    8. if (mysqli_connect_errno()) {
    9. printf("Verbindung fehlgeschlagen: %s\n", mysqli_connect_error());
    10. exit();
    11. }
    12. if ($resultat = $db->query('SELECT * FROM test_ WHERE Username="ausgabe"')) {
    13. while($daten = $resultat->fetch_object() ){
    14. echo "". $daten->ID, '|' ,$daten->Username, '|' ,$daten->Password;
    15. }
    16. $resultat->close();
    17. } else {
    18. echo "Es konnten keine Daten aus der Datenbank ausgelesen werden";
    19. }
    20. $db->close();
    21. ?>


    Nur leider bekomme ich die Rückmeldung:

    VB.NET-Quellcode

    1. Der Index und die Länge müssen sich auf eine Position in der Zeichenfolge beziehen.
    2. Parametername: length
    MFG
    LEON
    _______________________________________________
    Entweder man ist Teil der Lösung oder Teil des Problems.
    Leider bekomme ich dieses Problem nicht im Griff.
    kann mir denn keiner weiterhelfen?
    MFG
    LEON
    _______________________________________________
    Entweder man ist Teil der Lösung oder Teil des Problems.
    Was ist col?
    Wo erhältst du die Fehlermeldung?

    PHP-Quellcode

    1. $in = $_POST['OUTPUT'];
    2. $var_in = explode('ausgabe', $in);


    Wozu das ? Du verwendest $var_in auch nie wieder. Und warum explodest das mit dem Delimiter 'ausgabe' ?
    Das ist meine Signatur und sie wird wunderbar sein!
    Die kannst du ignorieren, denn diese sind außer Funktion.

    Das Problem liegt ganz woanders, denn wenn ich über VB mit return ausgeben möchte,
    dann kommt entweder nur Hieroglyphen oder man bekommt die Ausgabe: Der Index war außerhalb des Arraybereichs.

    Das Witzige ist, das über Apache2 und php 5.6 die Hieroglyphen als Ausgabe kommen,
    und bei Nginx + PHP 5.6 die Ausgabe: Der Index war außerhalb des Arraybereichs. kommt.

    Als Server verwende ich Debian Jessy 8 auf einen Raspberry Pi2.

    Ich möchte gerne wissen warum dies passiert?
    denn auf PHP 5.4 funktionieren die Returns über VB tadellos.
    MFG
    LEON
    _______________________________________________
    Entweder man ist Teil der Lösung oder Teil des Problems.