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
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
Kommentar