Autor Beitrag
Heiko
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 3169
Erhaltene Danke: 11



BeitragVerfasst: Di 04.12.07 21:40 
Hallo,

ich füge, wie der Titel bereits sagt, per Insert einen Datensatz bei MySQL ein, aber wie erhalte ich die automatisch erzeugte ID zurück, ohne noch einmal auf die DB zuzugreifen?

Grüße
Heiko
mkinzler
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 4106
Erhaltene Danke: 13


Delphi 2010 Pro; Delphi.Prism 2011 pro
BeitragVerfasst: Di 04.12.07 21:43 
Per Api last_inserted_id()

_________________
Markus Kinzler.
Heiko Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 3169
Erhaltene Danke: 11



BeitragVerfasst: Di 04.12.07 21:49 
Ah danke, die war mir unebekannt und auch nicht per Google auf Anhieb zu finden (ich wollte gucken, ob man mit dem $result das rauskriegt, aber beim einfügen erhält man ja nur zurück, ob Fehler oder nicht).
GTA-Place
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
EE-Regisseur
Beiträge: 5248
Erhaltene Danke: 2

WIN XP, IE 7, FF 2.0
Delphi 7, Lazarus
BeitragVerfasst: Do 06.12.07 18:10 
Danke, ich habs immer wieder ausgelesen danach :lol:

_________________
"Wer Ego-Shooter Killerspiele nennt, muss konsequenterweise jeden Horrorstreifen als Killerfilm bezeichnen." (Zeit.de)
Heiko Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 3169
Erhaltene Danke: 11



BeitragVerfasst: Mo 10.12.07 21:28 
Hallo,

noch einmal ne kurze Frage dazu, da ich die Funktion nicht bei php.net bzw. dev.mysql.net direkt finde:
Was gibt er hier zurück, falls eine ID angegeben wird, die es in der Db nicht gibt?

ausblenden C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
  public function modifyPage($id, $alias, $title, $layout)
  {
    if (!is_numeric($id)) {
      throw new Exception("Beim Modifizieren von einer Seite müssen Sie eine ID angeben");
    }
    $this->preparePageChangeData($alias, $title, $layout);
    $id = 0;
    $sql = "UPDATE layouts SET alias='".$alias."' title='".$title."' layout='".$layout."' WHERE id=".$id." LIMIT 1";
    if ($this->db->uquery($sql)) $id = $this->db->last_inserted_id();
    return $id;
  }
Martok
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 3661
Erhaltene Danke: 604

Win 8.1, Win 10 x64
Pascal: Lazarus Snapshot, Delphi 7,2007; PHP, JS: WebStorm
BeitragVerfasst: Di 11.12.07 00:31 
Öhm, bei Update gibts doch eh keine last_inserted_id oder versteh ich deinen Code falsch?

Auf jeden fall kannst du über (mysql_) affected_rows() prüfen, wie viele Zeilen betroffen waren.

_________________
"The phoenix's price isn't inevitable. It's not part of some deep balance built into the universe. It's just the parts of the game where you haven't figured out yet how to cheat."
Heiko Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 3169
Erhaltene Danke: 11



BeitragVerfasst: Di 11.12.07 09:09 
Das ist ja die Frage, ob er das auch macht ;). Zu mindestens suche ich dafür auch eine Variante um die ID auszulesen.

@affected_rows: Den befehl habe ich schon gefunden, aber darüber würde ich ja maximal wissen, ob er was geupdated hat, oder nicht. Aber nicht, welche ID :(.
ene
ontopic starontopic starontopic starontopic starontopic starofftopic starofftopic starofftopic star
Beiträge: 779
Erhaltene Danke: 1

Vista, XP, W2K
Delphi, .Net, Deutsch und Englisch
BeitragVerfasst: Di 11.12.07 09:28 
Welche ID geändert wurde, siehst du doch schon in der $id...was soll der Sinn davon sein? Du aktualisierst ja Werte und mit affected_rows bekommst du die Anzahl der geänderten DS zurück.

Wenn du False zurückbekommst, wird die Methode nicht unterstützt.

_________________
Wir, die guten Willens sind, geführt von Ahnungslosen, Versuchen für die Undankbaren das Unmögliche zu vollbringen.
Wir haben soviel mit so wenig so lange versucht, daß wir jetzt qualifiziert sind, fast alles mit Nichts zu bewerkstelligen.
Heiko Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 3169
Erhaltene Danke: 11



BeitragVerfasst: Di 11.12.07 09:40 
:autsch: manchmal ist man echt blind ;).

Allerdings wäre es interessant zu wissen, ob man den Primären Key (die ID) herausfindet, wenn man z.B. per alias etwas ändert. Allerdings vermute ich, dass man da nicht um 2 Abfragen rumkommt, da ein Update ja mehrere Zeilen betreffen kann.

PS @ Martok: affected_rows ist keine Methode, sondenr lediglich eine Variable ;) (bei OOP-MySQLi ;) )