Abfrage ausgeführt - aber Fehler: mysql_fetch_assoc

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

  • Abfrage ausgeführt - aber Fehler: mysql_fetch_assoc

    Hallo zusammen,

    ich möchte SQL Statements, die in einer textarea eingegeben werden direkt in der Datenbank ausführen lassen.

    Das mache ich mit folgenden Script

    if ($_POST) {

    echo 'Folgendes Statement wurde abgeschickt:<br><br>';

    $sql_temp = stripslashes ($_POST['sql']);
    $sql = explode(";",$sql_temp);

    unset ($sql[count($sql)-1]);
    foreach ($sql as $statement) {

    echo $statement.'<br>';
    }
    echo '<br>ERGEBNIS:<br><br>';
    foreach ($sql as $statement) {

    $result = mysql_query($statement) OR die(mysql_error());
    while($row = mysql_fetch_assoc($result)) {
    echo mysql_error();
    foreach ($row as $res) {
    echo $res;
    }
    echo '<br>';
    }
    }
    }

    Generell funktioniert das z.B. mit irgendwelchen SELECT Abfragen problemlos.

    Wenn ich jetzt allerdings die Abfrage:

    INSERT INTO `tabelle` (`vorname`, `name`, `ort`) VALUES ('vn', 'n', 'o');

    ausführen lasse, bekomme ich die Meldung:
    "mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource"

    Der neue Datensatz wird aber trotzdem in der Datenbank erzeugt!

    (Die Syntax des Statements ist korrekt - funktioniert auch über phpMyAdmin problemlos.)

    Vielleicht weiß jemand Rat?

    mick

  • #2
    weil mysql_fetch_assoc ($result) das ergebnis eines select-statements verarbeitet und nicht das eines insert. für diesen fall u.u. ein mysql_affected_rows benutzen.

    gruß
    peter
    Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
    Meine Seite

    Kommentar


    • #3
      Oh Mann wie blöd von mir!

      Bin noch nicht lange beim Programmieren mit Datenbanken - hoffe das gilt als Entschuldigung!?

      Wie könnte ich dann das Ergebnis der SQL Abfrage verarbeiten? Ich weiß ja nicht, welches statement der User eingibt - ich reiche es nur weiter.

      Kommentar


      • #4
        Original geschrieben von mick77
        Wie könnte ich dann das Ergebnis der SQL Abfrage verarbeiten? Ich weiß ja nicht, welches statement der User eingibt - ich reiche es nur weiter.
        wie jetzt, kann man bei dir native sql in's formular hacken, oder wie?

        ansonsten kannst du mit is_resource()
        Code:
        Nur für SELECT, EXPLAIN, SHOW oder DESCRIBE Anweisungen liefert mysql_query() eine Ressourcen-Kennung
        den rückgabewert von mysql_query() überprüfen.

        Kommentar


        • #5
          Wie könnte ich dann das Ergebnis der SQL Abfrage verarbeiten?
          Was erwartest du dir denn von einem INSERT für ein Ergebnis???

          Kommentar


          • #6
            Hallo, vielen Dank für Eure Hilfe!

            Ja, es ist tatsächlich so, dass der (wissende) Anwender direkt SQL-Statements in das Formula eingeben soll und diese direkt in der Datenbank ausgeführt werden.

            Ich frage das Ergebnis jetzt mit is_resource() ab und gebe es ggf. aus.

            Kommentar

            Lädt...
            X