Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > de.comp.lang.php > #4108
| From | Sebastian Suchanek <sebastian.suchanek@gmx.de> |
|---|---|
| Newsgroups | de.comp.datenbanken.mysql, de.comp.lang.php |
| Subject | Re: Zeitabhängige Gruppierung von Datensätzen |
| Followup-To | de.comp.lang.php |
| Date | 2017-05-18 22:03 +0200 |
| Message-ID | <ofkumt$13r$1@msgid.suchanek.de> (permalink) |
| References | <odg74b$v3g$1@msgid.suchanek.de> <odkpof$kr0$1@dont-email.me> <ofd4fr$kk1$1@msgid.suchanek.de> <enujc6Fb328U1@mid.individual.net> <ofeuhm$2ke$1@dont-email.me> |
Cross-posted to 2 groups.
Followups directed to: de.comp.lang.php
Am 16.05.2017 um 15:27 schrieb Axel Schwenke:
> On 15.05.2017 23:03, Stefan Froehlich wrote:
>> In de.comp.lang.php Sebastian Suchanek <sebastian.suchanek@gmx.de> wrote:
>
> [4 separate SQL Statements]
>
>>> Wenn ich diese Statements z.B. unter PHPmyAdmin in die "SQL"-Eingabe
>>> einkippe, erhalte ich das gewünschte Ergebnis.
>>> Wenn ich sie stattdessen in meinem eigenen Skript mittels mysqli::query
>>> ausführen will, erhalte stattdessen aber eine Fehlermeldung
>
> [snip]
>
>>> Wahrscheinlich hängt's nur an einer Kleinigkeit, [...]
>>
>> "Kleinigkeit" ist relativ, aber es ist einfach zu beheben.
>> Vereinfacht gesagt liegt das Problem beim Strichpunkt (deshalb auch
>> "near SELECT @ts""), Du brauchst einen eigenen Befehl, um mehrere
>> Statements in einem query-Statement ausführen zu können:
>> <http://php.net/manual/de/mysqli.quickstart.multiple-statement.php>
>
> Hmm. Damit hatte ich ehrlich gesagt nicht gerechnet, daß Sebastian versuchen
> würde, mehrere Statements in einem Rutsch auszuführen.
Ich war fälschlicherweise davon ausgegangen, dass nach jedem Aufruf von
mysqli::query die Verbindung zur Datenbank implizit beendet würde, womit
dann z.B. auch temporäre Tabellen perdu wären. Inzwischen weiß ich, dass
dem nicht so ist.
(Erscheint rückblickend auch logischer... :-))
> [...]
> Meine Empfehlung wäre, eben diesen Weg zu gehen: für jedes der 4 Statements
> einmal mysqli::query aufrufen. Und zwar natürlich für das gleiche mysqli
> Objekt, weil die User-Variablen und die temporäre Tabelle ja spezifisch für
> die MySQL-Connection sind.
So habe ich das inzwischen gemacht, ja. Aber hauptsächlich deswegen,
weil ich dabei das anschließende Handling des/der Ergebnisse(s)
persönlich einfacher finde.
> Die Unterstützung für multi-statements ist normalerweise ausgeschaltet. Und
> das ist auch gut so. Man kann eine ganze Klasse von SQL-Injection Angriffen
> ausschalten, indem man multi-statements verbietet.
Das nimmt man natürlich gerne mit. So gesehen frage mich dann aber
schon, wo der Vorteil von mysqli::multi_query gegenüber ein paar
nacheinander ausgeführten mysqli::query ist.
Tschüs,
Sebastian
PS: f'up2 dclp, weil das mit MySQL im engeren Sinn nicht mehr viel zu
tun hat.
Back to de.comp.lang.php | Previous | Next — Previous in thread | Find similar | Unroll thread
Re: Zeitabhängige Gruppierung von Datensätzen Sebastian Suchanek <sebastian.suchanek@gmx.de> - 2017-05-15 22:53 +0200
Re: Zeitabhängige Gruppierung von Datensätzen Stefan+Usenet@Froehlich.Priv.at (Stefan Froehlich) - 2017-05-15 21:03 +0000
Re: Zeitabhängige Gruppierung von Datensätzen Axel Schwenke <axel.schwenke@gmx.de> - 2017-05-16 15:27 +0200
Re: Zeitabhängige Gruppierung von Datensätzen Sebastian Suchanek <sebastian.suchanek@gmx.de> - 2017-05-18 22:03 +0200
csiph-web