chris: MySQL 5.1.33-community: neuesten Datensatz selektieren

Aus Oracle bin ich gewöhnt, mit :new.Spaltenname den neuesten Wert zu selektieren. Gibt es sowas auch in mysql??

Ich habe zu dem Thema die funktion mysql_insert_id gefunden. Leider kann ich sie nicht verwenden, bedingt durch den Fehler
Warning: mysqli_insert_id() expects exactly 1 parameter, 0 given in C:\xampplite\htdocs\post_news.php on line 94

Betreffende Zeile:
PHP-Code:
$neue_id = mysqli_insert_id();

Im Grunde genommen, will ich mit einem Trigger, die ID des soeben angelegten Datensatzes in eine andere Tabelle einfügen. Aber wie selektiere ich präzise die ID des soeben per insert angelegten Datensatzes?

Vielen Dank für die Hilfe!

  1. Hallo,

    Aus Oracle bin ich gewöhnt, mit :new.Spaltenname den neuesten Wert zu selektieren. Gibt es sowas auch in mysql??

    Ich habe zu dem Thema die funktion mysql_insert_id gefunden.

    das ist in etwa das Gegenstück in PHP, ...

    Im Grunde genommen, will ich mit einem Trigger,

    verwende doch einen Trigger und nutze die MySQL-spezifische Funktion LAST_INSERT_ID() (in SQL nicht PHP).

    Freundliche Grüße

    Vinzenz

    1. »

      Und da schaust du nicht mal im PHP-Handbuch nach, welcher Parameter das sein könnte, den die Funktion da erwartet?

      Ich hab die Funktion ja ausm PHP Handbuch ;) Allerdings verwende ich nicht mysql_connect sondern mysqli_connect. Ich habe die falsche fehlermeldung kopiert, das hier ist die richtige:

      Warning: mysql_insert_id() [function.mysql-insert-id]: A link to the server could not be established in C:\xampplite\htdocs\post_news.php on line 94

      Der Trigger läuft im MySQL-Server. Dafür brauchst du kein PHP, denn MySQL kennt die Funktion LAST_INSERT_ID().

      Wo der Trigger läuft weiß ich auch :)

      das ist in etwa das Gegenstück in PHP, ...

      verwende doch einen Trigger und nutze die MySQL-spezifische Funktion LAST_INSERT_ID() (in SQL nicht PHP).

      Wo nu, in PHP oder der Datenbank?

      1. Hallo,

        Ich hab die Funktion ja ausm PHP Handbuch ;) Allerdings verwende ich nicht mysql_connect sondern mysqli_connect. Ich habe die falsche fehlermeldung kopiert, das hier ist die richtige:

        Warning: mysql_insert_id() [function.mysql-insert-id]: A link to the server could not be established in C:\xampplite\htdocs\post_news.php on line 94

        wenn Du mysqli verwendest, kannst Du nicht auf die mysql_*-Funktionen zugreifen.

        Der Trigger läuft im MySQL-Server. Dafür brauchst du kein PHP, denn MySQL kennt die Funktion LAST_INSERT_ID().

        Wo der Trigger läuft weiß ich auch :)

        verwende doch einen Trigger und nutze die MySQL-spezifische Funktion LAST_INSERT_ID() (in SQL nicht PHP).

        Wo nu, in PHP oder der Datenbank?

        dedlfix und ich sagen Dir doch beide das gleiche:
        Nutze LAST_INSERT_ID() im INSERT-Trigger, also in der Datenbank!

        Freundliche Grüße

        Vinzenz

        1. wenn Du mysqli verwendest, kannst Du nicht auf die mysql_*-Funktionen zugreifen.

          Einleuchtend, mysqli hält aber eine identische Funktion bereit:
          http://de2.php.net/manual/de/mysqli.insert-id.php

          dedlfix und ich sagen Dir doch beide das gleiche:
          Nutze LAST_INSERT_ID() im INSERT-Trigger, also in der Datenbank!

          Jawohl, ich stehe im Moment etwas auf der Leitung..

          1. Hi!

            Nutze LAST_INSERT_ID() im INSERT-Trigger, also in der Datenbank!
            Jawohl, ich stehe im Moment etwas auf der Leitung..

            Du solltest auch beachten, dass beide Funktionen nur für die aktuelle Verbindung arbeiten. Schließt du diese oder baust anderweitig eine neue auf, ist der Last-Insert-Wert weg.

            Lo!

  2. Hi!

    Ich habe zu dem Thema die funktion mysql_insert_id gefunden. Leider kann ich sie nicht verwenden, bedingt durch den Fehler
    Warning: mysqli_insert_id() expects exactly 1 parameter, 0 given in C:\xampplite\htdocs\post_news.php on line 94

    Und da schaust du nicht mal im PHP-Handbuch nach, welcher Parameter das sein könnte, den die Funktion da erwartet?

    Im Grunde genommen, will ich mit einem Trigger, die ID des soeben angelegten Datensatzes in eine andere Tabelle einfügen. Aber wie selektiere ich präzise die ID des soeben per insert angelegten Datensatzes?

    Der Trigger läuft im MySQL-Server. Dafür brauchst du kein PHP, denn MySQL kennt die Funktion LAST_INSERT_ID().

    Lo!