Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > de.comp.lang.php > #4108

Re: Zeitabhängige Gruppierung von Datensätzen

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

Show all headers | View raw


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 | NextPrevious in thread | Find similar | Unroll thread


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