Barbara: Verwendung von EOF

Hallo, ich möchte eine Anweisung mit Hilfe von EOF schreiben!

Was ist hier mein Fehler?

$query = <<EOF ;
select t_esdoc_watched.id, result, name, TO_char (created_at, 'dd.mm.yy hh24.mi.ss')
from t_esdoc_estep, t_esdoc_watched
where eseries_id = '4eseries_id'
and owner_id = t_esdoc_estep.id
and name = 'GREENHOUSE-TRANSFER'
order by created_at
EOF

Der Editor zeigt mir an, dass alles, was danach kommt auch in die Variable geschrieben wird!(es ist alles nur noch grün!!!!)

  1. Hallo Barbara,

    Was ist hier mein Fehler?

    Was sagt denn der Interpreter?

    $query = <<EOF ;
    select t_esdoc_watched.id, result, name, TO_char (created_at, 'dd.mm.yy hh24.mi.ss')
    from t_esdoc_estep, t_esdoc_watched
    where eseries_id = '4eseries_id'
    and owner_id = t_esdoc_estep.id
    and name = 'GREENHOUSE-TRANSFER'
    order by created_at
    EOF

    Hast du hier noch einen Zeilenumbruch oder hoert da die Datei auf?

    Grüße,
     CK

    --
    Das Sein entsteht aus dem Nicht-Sein.
    http://wwwtech.de/
    1. HALLO ,

      Was sagt denn der Interpreter?

      Dass er EOF nich finden kann!

      $query = <<EOF ;
      select t_esdoc_watched.id, result, name, TO_char (created_at, 'dd.mm.yy hh24.mi.ss')
      from t_esdoc_estep, t_esdoc_watched
      where eseries_id = '4eseries_id'
      and owner_id = t_esdoc_estep.id
      and name = 'GREENHOUSE-TRANSFER'
      order by created_at
      EOF

      Hast du hier noch einen Zeilenumbruch oder hoert da die Datei auf?

      Also die Datei geht noch weiter:
       $sth = $dbh ->prepare($query);
         $sth ->execute;
      ...
      ...
      ...

      Gruß, Barbara

      1. $query = <<EOF ;
        select t_esdoc_watched.id, result, name, TO_char (created_at, 'dd.mm.yy hh24.mi.ss')
        from t_esdoc_estep, t_esdoc_watched
        where eseries_id = '4eseries_id'
        and owner_id = t_esdoc_estep.id
        and name = 'GREENHOUSE-TRANSFER'
        order by created_at
        EOF

        Hast du hier noch einen Zeilenumbruch oder hoert da die Datei auf?

        Also die Datei geht noch weiter:
         $sth = $dbh ->prepare($query);
           $sth ->execute;

        Die Frage ist, ob in der Zeile in der die Zeichenkette "EOF" (es könnte auch eine x-beliebige andere sein), noch etwas anderes steht.
        In der Zeile darf kein Leerzeichen, kein Tab und nichts anderes stehen (es muss aber ein Zeilenumbruch folgen)

        Struppi.

        1. Die Frage ist, ob in der Zeile in der die Zeichenkette "EOF" (es könnte auch eine x-beliebige andere sein), noch etwas anderes steht.
          In der Zeile darf kein Leerzeichen, kein Tab und nichts anderes stehen (es muss aber ein Zeilenumbruch folgen)

          Struppi.

          mh, es steht wirklich nichts ausser EOF da und es geht mit einem Zeilenumbruch weiter!

          Barbra

          1. mh, es steht wirklich nichts ausser EOF da und es geht mit einem Zeilenumbruch weiter!

            Vielleicht ist das Leerzeichen zwischen EOF und dem semikolon zuviel.

            Struppi.

  2. hi,

    Hallo, ich möchte eine Anweisung mit Hilfe von EOF schreiben!

    sagen wir es mal etwas präsizer, du möchtest die HEREDOC-notation für ein literal verwenden.

    EOF ist hier nur zufällig der bezeichner für die grenze, es kann aber auch jeder andere sein.

    Was ist hier mein Fehler?

    ich kenne HEREDOC nur aus PHP, aber so weit ich weiß, ist es in perl analog.

    $query = <<EOF ;

    1. es müssen in PHP _drei_ < sein, also $query = <<<EOF. hier also vermutlich auch.
    2. ist das semikolon dahinter richtig?

    EOF

    _hier_ hinter sollte dann wieder ein semikolon, zumindest in PHP, um die wertzuweisung für die variable dann auch wirklich abzuschliessen.

    http://www.php.net/manual/de/language.types.string.php#language.types.string.syntax.heredoc

    gruß,
    wahsaga

    --
    I'll try being nicer if you'll try being smarter.
    1. Hallo wahsaga,

      Was ist hier mein Fehler?

      ich kenne HEREDOC nur aus PHP, aber so weit ich weiß, ist es in
      perl analog.

      Nein. Wenn, dann waere es in PHP analog, aber Here-Docs in Perl und
      PHP haben unterschiedliche Syntax.

      $query = <<EOF ;

      1. es müssen in PHP _drei_ < sein, also $query = <<<EOF. hier also
        vermutlich auch.

      Nein.

      1. ist das semikolon dahinter richtig?

      Ja.

      EOF

      _hier_ hinter sollte dann wieder ein semikolon, zumindest in PHP,
      um die wertzuweisung für die variable dann auch wirklich
      abzuschliessen.

      Tja, PHP ist nicht Perl. :) Hier gehoert keines hin.

      Grüße,
       CK

      --
      Wenn auf Erden alle das Schoene als schoen erkennen, so ist dadurch schon das Haessliche bestimmt.
      http://wwwtech.de/