DELETE

DELETE

am 10.07.2005 18:49:15 von Adrian

Hallo,
ich versuche eine Zeile mittels:
$query = mysql_query("DELETE FROM HArt WHERE Date='".$delete."'"); zu
löschen, MySQL sagt aber, da sei was faul, ich solle in der Doku
nachschauen, löscht die Zeile aber dennoch sauber...? Wo find' ich denn die
Doku zu MySQL 4.1.11?
Danke für die Hilfe!

--
roN
www.rideon.ch

Re: DELETE

am 10.07.2005 19:26:42 von Marian Heddesheimer

On Sun, 10 Jul 2005 18:49:15 +0200, roN wrote:

>nachschauen, löscht die Zeile aber dennoch sauber...? Wo find' ich denn die
>Doku zu MySQL 4.1.11?

http://dev.mysql.com/doc/mysql/de/index.html

und leg dir bei Gelegenheit mal einen Realnamen zu.

Marian

--
Barrierefreie Online-Kurse: HTML, PHP, MySQL, Word, Excel
http://www.lernpilot.de/wbt/

Re: DELETE

am 10.07.2005 20:08:49 von Adrian

Marian Heddesheimer wrote:
> On Sun, 10 Jul 2005 18:49:15 +0200, roN wrote:
>
>> nachschauen, löscht die Zeile aber dennoch sauber...? Wo find' ich
>> denn die Doku zu MySQL 4.1.11?
>
> http://dev.mysql.com/doc/mysql/de/index.html

hä? das sollte doch sauber funktionieren(auch nach Doku):
if (isset($_GET['delete']))
{
$connection=mysql_connect(db_server,db_user,db_passwort);
mysql_select_db(db_name);
$delete=$_GET['delete'];
$query = mysql_query("DELETE FROM HArt WHERE Date='".$delete."'");

mysql_query($query) or die(mysql_error());
mysql_close($connection);
}

aus Doku(http://dev.mysql.com/doc/mysql/en/delete.html):

DELETE FROM somelog
WHERE user = 'jcole'

ich kriege aber:
" You have an error in your SQL syntax; check the manual that corresponds to
your MySQL server version for the right syntax to use near '1' at line 1 "
Warum bloss? :(

> und leg dir bei Gelegenheit mal einen Realnamen zu.
Das ist mein Realname!

--
roN

Re: DELETE

am 10.07.2005 21:21:28 von Gregor Kofler

roN wrote:
> " You have an error in your SQL syntax; check the manual that corresponds to
> your MySQL server version for the right syntax to use near '1' at line 1 "
> Warum bloss? :(

Was'n in $delete drin?
>
>>und leg dir bei Gelegenheit mal einen Realnamen zu.
>
> Das ist mein Realname!

Dein Deutsch ist ausgezeichnet, wenn man bedenkt, wo du herkommen musst...


Gregor


--
Landschafts- und Reisefotografie * http://www.gregorkofler.at
Licht-Blick - Forum für Multivisionsvorträge * http://licht-blick.at

Re: DELETE

am 10.07.2005 21:29:50 von Thomas Hamacher

roN schrieb:
> Marian Heddesheimer wrote:

>>http://dev.mysql.com/doc/mysql/de/index.html

> hä? das sollte doch sauber funktionieren(auch nach Doku):

Jau, das sollte so sauber funktionieren, dass du mit den richtigen
Parametern gleich alle Datensätze löschen kannst. Hier wäre etwas wie

/script.php?delete='%20OR%201

denkbar, um ggf. alle Daten der Tabelle HArt zu löschen.

> if (isset($_GET['delete']))
> {
> $connection=mysql_connect(db_server,db_user,db_passwort);
> mysql_select_db(db_name);

Hier fehlt jegliche Fehlerbehandlung. Was passiert, wenn die Datenbank
offline ist oder die Zugangsdaten nicht mehr passen?

$conn = mysql_connect(...);

if(!is_resource($conn) || !mysql_select_db(...)) {
trigger_error("MySQL-Fehler: " . mysql_error(), E_USER_ERROR);
}

> $delete=$_GET['delete'];

Hier importierst du die Requestvariable ungeprüft und unmaskiert und
verwendest sie später in deinem Query, was zu dem oben genannten
Sicherheitsloch führt.




> $query = mysql_query("DELETE FROM HArt WHERE Date='".$delete."'");

$query ist jetzt ein Cursor (in PHP nennt man diesen Datentyp
'resource'). Von diesem Cursor kannst du die Ergebnissätze deines
Queries lesen. Was du in der nächsten Zeile versuchst, ist also
absoluter Quatsch und steht so sicher in *keinem* offiziellen Manual.

> mysql_query($query) or die(mysql_error());

Hier kommt die Fehlermeldung sicherlich her. Du hast das Manual nicht
ansatzweise verstanden. mysql_query() erwartet einen String als erstes
Argument und keine Resource.

$query = mysql_query("DELETE FROM HArt WHERE Date='".$delete."'");

if(!is_resource($query)) {
trigger_error("MySQL-Fehler: " . mysql_error(), E_USER_ERROR);
}

> aus Doku(http://dev.mysql.com/doc/mysql/en/delete.html):

Ja, aber das PHP-Manual (zumindest das MySQL-Kapitel) solltest du auch
lesen und verstehen, wenn du versuchst komplexe Probleme damit lösen zu
wollen.

> Das ist mein Realname!

Vorher war es Ronny Eggler. Wichtiger als der Realname ist aber, dass du
dir endlich mal die PHP-*Grundlagen* aneignest und deine Fragen mal
vernüftig formulierst und vor allem mal *vorher* selber recherchierst
anstatt hier alle 5 Minuten irgendeine Anfängerfrage zu stellen.

Wie ich schon schrieb: Das nervt!

Re: DELETE

am 10.07.2005 21:33:25 von Adrian

Gregor Kofler wrote:
> roN wrote:
>> " You have an error in your SQL syntax; check the manual that
>> corresponds to your MySQL server version for the right syntax to use
>> near '1' at line 1 " Warum bloss? :(
>
> Was'n in $delete drin?

Ein Wert, welcher in Spalte Date vorhanden ist.

>>> und leg dir bei Gelegenheit mal einen Realnamen zu.
>>
>> Das ist mein Realname!
>
> Dein Deutsch ist ausgezeichnet, wenn man bedenkt, wo du herkommen
> musst...

Ähm Hallo, bin ich im richtigen Film? Ok, ich lebe nicht in Deutschland und
in der Schweiz ist es so, dass Leute Namen aus anderen Ländern haben
können...und dürfen!

--
chEErs roN
kEEp on rockin'

Re: DELETE

am 10.07.2005 21:52:32 von Adrian

[snip]

>> Das ist mein Realname!
>
> Vorher war es Ronny Eggler. Wichtiger als der Realname ist aber, dass
nur zur korrektur, Ronny Eggler hab' ich mich NIE gennant, nu Ron Eggler,
den Nachnamen lasse ich jetzt aber weg wegen ebenfalls genannter
Spam-Plage...
> du dir endlich mal die PHP-*Grundlagen* aneignest und deine Fragen mal
> vernüftig formulierst und vor allem mal *vorher* selber recherchierst
> anstatt hier alle 5 Minuten irgendeine Anfängerfrage zu stellen.
Yup, hab' 2 Bücher vor mir liegen welche ich am lesen bin nur ist
wahrscheinlich im moment mein Entdeckungshunger etwas zu gross für meine
momentanen Fähigkeiten.
>
> Wie ich schon schrieb: Das nervt!
Tut mir leid das ich dich so nerve, war nicht meine Absicht.
Danke aufjedenfall für die Hilfe, ich versuche mein Skript jetzt, mit deiner
Hilfe und deren der Bücher, korrekt hinzubiegen. Funktionieren tuts jetzt
schon. Naja, Danke! :)
Ich versuch mich jetzt zurück zu halten.

--
chEErs roN
kEEp on rockin'

Re: DELETE

am 10.07.2005 21:58:41 von Marian Heddesheimer

On Sun, 10 Jul 2005 20:08:49 +0200, roN wrote:

>hä? das sollte doch sauber funktionieren(auch nach Doku):

ich empfehle eine gute Schulung oder ein gutes Buch.

z.B. meine Online-Schulung:

http://www.lernpilot.de/wbt/kurse/index.php?kurs=mysql01&sei te=0

Marian

--
Barrierefreie Online-Kurse: HTML, PHP, MySQL, Word, Excel
http://www.lernpilot.de/wbt/

Re: DELETE

am 10.07.2005 22:01:46 von Gregor Kofler

roN wrote:
> Gregor Kofler wrote:
>
>>roN wrote:
>>
>>>" You have an error in your SQL syntax; check the manual that
>>>corresponds to your MySQL server version for the right syntax to use
>>>near '1' at line 1 " Warum bloss? :(
>>
>>Was'n in $delete drin?
>
>
> Ein Wert, welcher in Spalte Date vorhanden ist.

Und was gibt ein print_r($_GET) für den Wert aus?

>>>>und leg dir bei Gelegenheit mal einen Realnamen zu.
>>>
>>>Das ist mein Realname!
>>
>>Dein Deutsch ist ausgezeichnet, wenn man bedenkt, wo du herkommen
>>musst...
>
>
> Ähm Hallo, bin ich im richtigen Film? Ok, ich lebe nicht in Deutschland und
> in der Schweiz ist es so, dass Leute Namen aus anderen Ländern haben
> können...und dürfen!

Ich dachte immer in der Schweiz hat man auch einen Vor- und *Nachnamen*.
Wäre bei dir "Ron Eggler". Nicht "roN" und auch nicht "ron @ work".

Ich poste übrigens schon - so wie praktisch alle anderen hier - in
diversen NGs mit vollem Namen und hab von einer Spamplage nicts bemerkt.
Wie soll bitte ein Bot von einem Realnamen auch auf eine *Email*-Adresse
kommen?

Gregor

--
Landschafts- und Reisefotografie * http://www.gregorkofler.at

Re: DELETE

am 10.07.2005 22:44:31 von Hartmut Holzgraefe

roN wrote:
> ich kriege aber:
> " You have an error in your SQL syntax; check the manual that correspon=
ds to=20
> your MySQL server version for the right syntax to use near '1' at line =
1 "
> Warum bloss? :(

wenn du jetzt noch das tatsächliche Statement (so wie es zum
Server geschickt wird, also *nach* Ersetzung der PHP-Variablen)
dazu mitschicken würdest könnte man evtl. sehen was schief geht

>> und leg dir bei Gelegenheit mal einen Realnamen zu.
> Das ist mein Realname!

Eingetragener Künstlername?

--=20
Hartmut Holzgraefe, Senior Support Engineer .
MySQL AB, www.mysql.com

Re: DELETE

am 11.07.2005 17:52:49 von Thomas Hamacher

roN schrieb:

>>> Das ist mein Realname!

>> Vorher war es Ronny Eggler. Wichtiger als der Realname ist aber, dass

> nur zur korrektur, Ronny Eggler hab' ich mich NIE gennant, nu Ron Eggler,

Ja, meinetwegen. Mir ist es wie gesagt sowieso relativ gleich; und wenn
du dich Schneewitchen nennst. Das dich einige Regulars dann filtern und
du somit gar nicht erst gelesen wirst ist dir bekannt?

> den Nachnamen lasse ich jetzt aber weg wegen ebenfalls genannter
> Spam-Plage...

Das ist absoluter Schwachsinn. Ich schreibe auch mit Realname und echter
E-Mailadresse und das Spamaufkommen hält sich in Grenzen. Davon man ganz
abgesehen ändert sich nichts daran, ob du dich jetzt so oder so nennst.

Was allerdings extrem asozial ist, ist das du *immer noch* eine fremde
E-Mailadresse benutzt und somit ein fremdes Postfach zuspammen lässt.

Damit verstößt du auch gegen die Nutzungsbedingungen deines Providers
und eigentlich wäre es eine Abusemail wert.



>>du dir endlich mal die PHP-*Grundlagen* aneignest und deine Fragen mal
>>vernüftig formulierst und vor allem mal *vorher* selber recherchierst
>>anstatt hier alle 5 Minuten irgendeine Anfängerfrage zu stellen.

> Yup, hab' 2 Bücher vor mir liegen welche ich am lesen bin nur ist
> wahrscheinlich im moment mein Entdeckungshunger etwas zu gross für meine
> momentanen Fähigkeiten.

Und deshalb stellst du hier eine Frage, wartest ca. 30 Minuten auf eine
Antwort die dir eventuell gar nicht hilft, weil die Leute hier erwarten,
dass du mindestens Grundlagenwissen hast, anstatt einfach selber fünf
Minuten mit einer Suchmaschine deiner Wahl zu suchen?

Das hier ist kein kostenloses Supportforum für Programmieranfänger und
auch kein Handbuchvorlesedienst, sondern eine technische Newsgroup.

> Danke aufjedenfall für die Hilfe, ich versuche mein Skript jetzt, mit deiner
> Hilfe und deren der Bücher, korrekt hinzubiegen. Funktionieren tuts jetzt
> schon.

> Ich versuch mich jetzt zurück zu halten.

Nicht das das falsch angekommen ist: Jeder hier ist gerne bereit dir und
anderen Anfängern zu helfen, aber nicht, wenn die gestellten Fragen mit
ein wenig Eigeninitiative oder durch das Lesen des Manuals oder der FAQ
selber hätten beantwortet werden können.

Hast du die Sache mit mysql_query() und der Code-Injektion verstanden?

Re: DELETE

am 12.07.2005 17:19:56 von Peter Wiegehtdas

Thomas Hamacher wrote:

> Ja, meinetwegen. Mir ist es wie gesagt sowieso relativ gleich; und wenn
> du dich Schneewitchen nennst. Das dich einige Regulars dann filtern und
> du somit gar nicht erst gelesen wirst ist dir bekannt?

Die Regulars, die mich filtern, sind mir egal. Von denen krieg ich ja
nichts mit. Dann gibt es noch die große Menge derjenigen, die ein
ausreichendes Abstraktionsvermögen haben, um zu verstehen, daß hinter
einem Posting immer ein Mensch steckt und es wurstegal ist, ob er sich
mit einem Realnamen präsentiert.

Was aber nervt, sind die Realname-Quengler.

Also: Filtern oder klappe halten.

Peter.

P.S. Immer wieder lustig, wenn ich mir ab und zu einen real klingenden
Namen ausdenke und die Quengler dann zufrieden sind. Was für eine
Augenwischerei.