Startseite
  • » Home
  • » Handbuch & FAQ
  • » Forum
  • » Übersetzungsserver
  • » Suche
Startseite › Forum › Drupalcenter.de › Module › Modul-Entwicklung ›

Bei der Bearbeitung eines Nodes treten Syntax error und invalid arguments auf.

Eingetragen von Schnittmenge@dr... (288)
am 09.12.2008 - 06:00 Uhr in
  • Modul-Entwicklung
  • Drupal 5.x

Wenn ein node ge"edit" wird treten folgende 6 Fehlermeldung auf:

2 x A)
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1 query: SELECT n.nid, n.vid, n.type, n.status, n.created, n.changed, n.comment, n.promote, n.sticky, r.timestamp AS revision_timestamp, r.title, r.body, r.teaser, r.log, r.format, u.uid, u.name, u.picture, u.data FROM node n INNER JOIN users u ON u.uid = n.uid INNER JOIN node_revisions r ON r.vid = n.vid WHERE in /includes/database.mysql.inc in Zeile 174.

2x B)
implode() [function.implode]: Invalid arguments passed in /sites/all/modules/customized/node/node.module in Zeile 536.

2x C)
Invalid argument supplied for foreach() in /sites/all/modules/customized/node/node.module in Zeile 532.

Details:
Zu A) database.mysql.inc in Zeile 174

/**

* Fetch one result row from the previous query as an object.

*

* @param $result

*   A database query result resource, as returned from db_query().

* @return

*   An object representing the next row of the result. The attributes of this

*   object are the table fields selected by the query.

*/

function db_fetch_object($result) {

  if ($result) {

    return mysqli_fetch_object($result);

  }

} <= Zeile 174

Zu B) und C) node.module

/**

* Load a node object from the database.

*

* @param $param

*   Either the nid of the node or an array of conditions to match against in the database query

* @param $revision

*   Which numbered revision to load. Defaults to the current version.

* @param $reset

*   Whether to reset the internal node_load cache.

*

* @return

*   A fully-populated node object.

*/

function node_load($param = array(), $revision = NULL, $reset = NULL) {

  static $nodes = array();



  if ($reset) {

    $nodes = array();

  }



  if ($param == NULL) {

    return NULL;

  }



  $cachable = ($revision == NULL);

  $arguments = array();

  if (is_numeric($param)) {

    if ($cachable && isset($nodes[$param])) {

      return is_object($nodes[$param]) ? drupal_clone($nodes[$param]) : $nodes[$param];

    }

    $cond = 'n.nid = %d';

    $arguments[] = $param;

  }

  else {

    // Turn the conditions into a query.

    foreach ($param as $key => $value) {  <= C) ZEILE 532

      $cond[] = 'n.'. db_escape_string($key) ." = '%s'";

      $arguments[] = $value;

    }

    $cond = implode(' AND ', $cond);  <= B) ZEILE 536

  }

Wie löse ich das Problem?

Dank im Voraus für die Hilfe.

Saludos,
Schnittmenge

‹ Probleme mit hook_nodeapi und hook_load Modulentwicklung Anfänger Fragen ›
  • Anmelden oder Registrieren um Kommentare zu schreiben

Schau mal nach, was in

Eingetragen von narres (348)
am 09.12.2008 - 08:21 Uhr

Schau mal nach, was in function node_load($param = array(), $revision = NULL, $reset = NULL) in $param steht.

Da ist was faul und das $cond = implode(' AND ', $cond); ein Folgefehler.

Wenn Du rausbekommen musst von wo die function node_load aufgerufen wird, dann mach ein var_dump(debug_backtrace()); (oder print_r()) um die aufrufende Funktion rauszubekommen. So hangelst Du Dich hoch.

  • Anmelden oder Registrieren um Kommentare zu schreiben

Danke

Eingetragen von Schnittmenge@dr... (288)
am 09.12.2008 - 13:05 Uhr

Dank Deiner Hilfe und der Hilfe von stBorchert konnte ich ein node_load ohne Inhalt entdecken und beheben.

  • Anmelden oder Registrieren um Kommentare zu schreiben

Gleicher Fehler, aber

Eingetragen von Woko (38)
am 12.12.2008 - 16:04 Uhr

Hallo,

ich habe auf meiner Site www.funkystory.de die gleiche Fehlermeldung, muss aber gestehen, dass ich diese Lösung hier nicht verstehe.

Kann es also jemand einfacher erklären?

Vielen Dank und Grüße.

  • Anmelden oder Registrieren um Kommentare zu schreiben

dann sucht man sich garantiert tot

Eingetragen von quiptime (4972)
am 12.12.2008 - 16:29 Uhr

Den Fehlern in der "database.mysql.inc" und "node.module" ist relativ sinnlos.

Ale 1.: Drupal und alle Module auf den aktuellen Stand bringen.

2.
Dem node_load() nachgehen. D. heisst, wenn diese Funktion durch eigene Code aufgerufen wird dann muss man in diesem Code sicherstellen das node_load nur dann aufgerufen wird wenn fuer diese Funktion ein Argument verfuegbar ist. In der Regel wird dieses Argument die Node ID sein.
Aus diesem Grund wird einem Funktionsaufruf von node_load() im Zusammenhang mit einer URL sinvoller Weise eine Pruefung der URL vorangestellt.:

<?php
if (arg(0) == 'node' && is_numeric(arg(1)) && !arg(2)) {
 
$my_node = node_load(arg(1));
}
?>

- Als praktikabel erweist sich bei der URL-Pruefung auch !arg(2) zu verwenden. Macht man dies nicht wird node_load() auch bei einer URL nach dem Schema /node/x/edit aufgerufen. Was zwar keinen Fehler verursachen wuerde aber zu unerwuenschten Effekten fuehren koennte.

- Als praktikabel erweist sich dabei, nicht $node = node_load(arg(1)) zu verwenden. Das kann unter bestimmten Umstaenden/Konstellationen zur Folge haben das man sich das existierende "normale" Nodeobject $node mit dem node_load() ueberschreibt. Und wenn dies mal der Fall sein sollte dann sucht man sich nach der Ursache des dadurch entstehenden Problemes garantiert tot.

3.
Wird der node_load() eventuell im Zusammenhang mit einer CCK Feldkonfiguration initiiert? Existierende CCK Nodetype-Konfigurationen pruefen.

4.
Wird der node_load() eventuell im Zusammenhang mit einem View initiert? Existierende Views pruefen die mit dem Code in Verbindung stehen der bei der Fehleranzeige ausgegeben wird.

-------------
quiptime

Nur tote Fische schwimmen mit dem Strom.

XING

  • Anmelden oder Registrieren um Kommentare zu schreiben

Benutzeranmeldung

  • Registrieren
  • Neues Passwort anfordern

Aktive Forenthemen

  • für drupal11 ein Slider Modul
  • [gelöst] W3CSS Paragraphs Views
  • Drupal 11 neu aufsetzen und Bereiche aus 10 importieren
  • Wie erlaubt man neuen Benutzern auf die Resetseite zugreifen zu dürfen.
  • [gelöst] Anzeigeformat Text mit Bild in einem Artikel, Drupal 11
  • Social Media Buttons um Insteragram erweitern
  • Nach Installation der neuesten D10-Version kein Zugriff auf Website
  • Composer nach Umzug
  • [gelöst] Taxonomie Begriffe zeigt nicht alle Nodes an
  • Drupal 11 + Experience Builder (Canvas) + Layout Builder
  • Welche KI verwendet ihr?
  • Update Manger läst sich nicht Installieren
Weiter

Neue Kommentare

  • melde mich mal wieder, da ich
    vor 2 Wochen 6 Tagen
  • Hey danke
    vor 3 Wochen 6 Stunden
  • Update: jetzt gibt's ein
    vor 3 Wochen 1 Tag
  • Hallo, im Prinzip habe ich
    vor 3 Wochen 5 Tagen
  • Da scheint die Terminologie
    vor 3 Wochen 5 Tagen
  • Kannst doch auch alles direkt
    vor 4 Wochen 2 Tagen
  • In der entsprechenden View
    vor 4 Wochen 2 Tagen
  • Dazu müsstest Du vermutlich
    vor 4 Wochen 2 Tagen
  • gelöst
    vor 6 Wochen 6 Tagen
  • Ja natürlich. Dass ist etwas,
    vor 7 Wochen 7 Stunden

Statistik

Beiträge im Forum: 250233
Registrierte User: 20462

Neue User:

  • Znogsnernoimb
  • ByteScrapers
  • Mroppoofpaync

» Alle User anzeigen

User nach Punkten sortiert:
wla9461
stBorchert6003
quiptime4972
Tobias Bähr4019
bv3924
ronald3857
md3717
Thoor3678
Alexander Langer3416
Exterior2903
» User nach Punkten
Zur Zeit sind 0 User und 19 Gäste online.

Hauptmenü

  • » Home
  • » Handbuch & FAQ
  • » Forum
  • » Übersetzungsserver
  • » Suche

Quicklinks I

  • Infos
  • Drupal Showcase
  • Installation
  • Update
  • Forum
  • Team
  • Verhaltensregeln

Quicklinks II

  • Drupal Jobs
  • FAQ
  • Drupal-Kochbuch
  • Best Practice - Drupal Sites - Guidelines
  • Drupal How To's

Quicklinks III

  • Tipps & Tricks
  • Drupal Theme System
  • Theme Handbuch
  • Leitfaden zur Entwicklung von Modulen

RSS & Twitter

  • Drupal Planet deutsch
  • RSS Feed News
  • RSS Feed Planet
  • Twitter Drupalcenter
Drupalcenter Team | Impressum & Datenschutz | Kontakt
Angetrieben von Drupal | Drupal is a registered trademark of Dries Buytaert.
Drupal Initiative - Drupal Association