Startseite
  • » Home
  • » Handbuch & FAQ
  • » Forum
  • » Übersetzungsserver
  • » Suche
Startseite › Forum › Drupalcenter.de › Allgemeines zu Drupal ›

[gelöst]db_query drupal api

Eingetragen von 1000 (764)
am 08.09.2010 - 17:45 Uhr in
  • Allgemeines zu Drupal
  • Drupal 6.x

Hallo,

ich komme da nicht weiter. Ich möchte eine eifache Abfrage und einen einfachen insert in die Datenbank machen. Das klappt nicht.

$result = db_query("SELECT * FROM {node_limit} WHERE uid = '$userid' and type='$type'");

$orderidalt = $result[orderid];
$limitalt = $result[limit];

db_query("UPDATE SET {node_limit} where type='$type' VALUES('%d', '%s', '%d', '%s', '%d','%d','%d')", $lid, $type, $limit, $title, $weight, $orderid, $userid);

Das funktioniert aber nicht. Es ist schlichtweg falscher Code. Ich weiss nur nicht, wie ich einen sicheren Code für diese beiden Aktionen schreiben kann.

Oberes Beispiel geht nicht, da ein Array ausgelesen wird. Bin überfragt.

‹ [gelöst]Webform: nach versenden (Node) löschen? Seite online stellen: Problem, nur Startseite wird angezeigt ›
  • Anmelden oder Registrieren um Kommentare zu schreiben

Du musst nicht nur die Query

Eingetragen von Exterior (2903)
am 08.09.2010 - 18:00 Uhr

Du musst nicht nur die Query in einer Variable speichern ($result) sondern auch die Zeilen auslesen und in einem Objekt speichern und entsprechend abrufen.

Beispiel 1:

<?php

$sql
= "SELECT * FROM {node_limit} WHERE uid = %d and type='%s'";

$result = db_query($sql, $userid, $type);

$row = db_fetch_object($result);

$orderidalt = $row->orderid;
$limitalt = $row->limit;
?>

Und deine Update-Anweisung ist schlichtweg komplett falsch. Hier kannst du dir mal anschauen, wie eine Update-Anweisung aufgebaut sein muss:

http://sql.1keydata.com/de/sql-update.php

Das was du da gemacht hast ist eine seltsame Mischung aus Update und Insert.

Außerdem solltest du dir das ganze Thema nochmal ordentlich zu Gemühte führen. Sowas macht man z.B. nicht:

WHERE uid = '$userid' and type='$type'

Da kommen Platzhalter hin und nicht direkt die Variablen (siehe mein Code oben).

Außerdem ist %d ein Platzhalter für Ganzzahlen, das heißt, es kommen keine Anführungszeichen drumrum.

  • Anmelden oder Registrieren um Kommentare zu schreiben

Die Select Abfrage hat

Eingetragen von 1000 (764)
am 08.09.2010 - 19:09 Uhr

Die Select Abfrage hat funktioniert. Vielen Dank dafür !

Beim Update tu ich mich schwer:

db_query("UPDATE {node_limit} SET ('%d', '%s', '%d', '%s', '%d','%d','%d') where type='$type'", $lid, $type, $limit, $title, $weight, $orderid, $userid);

funktioniert nicht. Warum kann ich mir nicht erklären.

  • Anmelden oder Registrieren um Kommentare zu schreiben

%d benötigt keine

Eingetragen von Sense (1559)
am 08.09.2010 - 19:21 Uhr

%d benötigt keine Anführungszeichen!
Des Weiteren musst Du die Tabellenfelder ansprechen. Syntax für UPDATE

  • Anmelden oder Registrieren um Kommentare zu schreiben

Hattest du meinen Beitrag

Eingetragen von Exterior (2903)
am 08.09.2010 - 19:33 Uhr

Hattest du meinen Beitrag komplett durchgelesen?

Deine Update-Syntax ist total falsch.

Eine Update-Anweisung müsste z.B. so aussehen:

UPDATE meine_tabelle SET uid=123, name="Max Mustermann", anrede="Herr" WHERE id = 12345;

  • Anmelden oder Registrieren um Kommentare zu schreiben

Sorry, war zu ungeduldig.

Eingetragen von 1000 (764)
am 08.09.2010 - 19:39 Uhr

Sorry, war zu ungeduldig. Dein Beitrg hat mir schon weitergeholfen. Eigendlich kenne ich diese Staddadabfragen. Die Platzhalter haben mich ein wenig verunsichert. Jetzt sieht mein update so aus

db_query("UPDATE {node_limit} SET lid=%d, type='%s', limit=%d, title='%s', weight=%d, orderid=%d, uid=%d where type='%s'", $lid, $type, $limit, $title, $weight, $orderid, $userid, $type);

  • Anmelden oder Registrieren um Kommentare zu schreiben

Kann mich nur wiederholen,

Eingetragen von Sense (1559)
am 08.09.2010 - 19:40 Uhr

Kann mich nur wiederholen, bitte die richtige Syntax anwenden, 2 Comments höher und darüber der Link zum Update Syntax!
UPDATE: So siehts besser aus!

  • Anmelden oder Registrieren um Kommentare zu schreiben

Ist immer noch falsch. Icch

Eingetragen von 1000 (764)
am 08.09.2010 - 20:35 Uhr

Ist immer noch falsch. Icch habe mich an die Syntax gehalten.

  • Anmelden oder Registrieren um Kommentare zu schreiben

Welche Fehlermeldung bekommst

Eingetragen von Exterior (2903)
am 08.09.2010 - 20:51 Uhr

Welche Fehlermeldung bekommst du denn?

  • Anmelden oder Registrieren um Kommentare zu schreiben

Ich habe den Fehler zwar

Eingetragen von 1000 (764)
am 09.09.2010 - 12:36 Uhr

Ich habe den Fehler zwar lokalisieren können. Ich weiss aber nicht wie ich ihn beheben kann.

db_query("UPDATE {node_limit} SET limit = '%s', orderid =%d where uid = %d and type ='%s'", $limit, $orderid, $userid, $type);

Die Syntax ist jetzt soweit in Ordnung. Leider ist limit ein Schlüsselwort. Ich darf es so nicht verwenden. Wenn ich die Bezeichnung in der Datenbank ändern würde, dann müsste ich das Modul aufwendig anpassen. Kann ich den oben genanten Query nicht irgendwie anders modifizieren, so dass das Ergebnis gleich bleibt aso die Datenbanktabelle mit der Bezeichnung limit angesprochen wird?

  • Anmelden oder Registrieren um Kommentare zu schreiben

Die Syntax ist eben nicht in

Eingetragen von wla (9461)
am 09.09.2010 - 13:03 Uhr

Die Syntax ist eben nicht in Ordnung, wenn Du "reserved words" wie limit so verwendest. Gemäß MySQL Dokumentation mußt Du diese Begriffe quoten mit "backticks" also

db_query("UPDATE {node_limit} SET `limit` = '%s', orderid =%d where uid = %d and type ='%s'", $limit, $orderid, $userid, $type);

Beste Grüße
Werner

  • Anmelden oder Registrieren um Kommentare zu schreiben

Jetzt klappt es. Eigendlich

Eingetragen von 1000 (764)
am 09.09.2010 - 17:18 Uhr

Jetzt klappt es. Eigendlich wusste ich das, habe aber die Backticks falsch eingegeben. Jetzt funktioniert es. Vielen Dank !

  • Anmelden oder Registrieren um Kommentare zu schreiben

Dann setze bitte noch diesen

Eingetragen von wla (9461)
am 09.09.2010 - 18:05 Uhr

Dann setze bitte noch diesen Thread auf gelöst. ([gelöst] an den Anfang des ersten Titels im Thread setzen)

Beste Grüße
Werner

  • 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 3 Tagen 19 Stunden
  • Hey danke
    vor 4 Tagen 14 Stunden
  • Update: jetzt gibt's ein
    vor 5 Tagen 8 Stunden
  • Hallo, im Prinzip habe ich
    vor 1 Woche 2 Tagen
  • Da scheint die Terminologie
    vor 1 Woche 2 Tagen
  • Kannst doch auch alles direkt
    vor 2 Wochen 3 Stunden
  • In der entsprechenden View
    vor 2 Wochen 3 Stunden
  • Dazu müsstest Du vermutlich
    vor 2 Wochen 3 Stunden
  • gelöst
    vor 4 Wochen 3 Tagen
  • Ja natürlich. Dass ist etwas,
    vor 4 Wochen 4 Tagen

Statistik

Beiträge im Forum: 250233
Registrierte User: 20449

Neue User:

  • Mroppoofpaync
  • 4aficiona2
  • AppBuilder

» 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 1 Benutzer und 19 Gäste online.

Benutzer online

  • dinmikkith

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