Nodejs mariadb Column count doesn't match value count at row 1?

meine datenbank hat 4 spalten aber ich setze nur 3 ein weil die letzte eine auto_increment spalte ist,

ich nutze nodejs mit mariadb und habe folgende fehlermeldung beim daten einsetzen:

/home/j44/Downloads/themer/tut/node_modules/mariadb/lib/misc/errors.js:64
  return new SqlError(msg, sql, fatal, info, sqlState, errno, additionalStack, addHeader);
         ^

SqlError: (conn=2420, no: 1136, SQLState: 21S01) Column count doesn't match value count at row 1
sql: INSERT INTO thread value (no, head, ts) - parameters:['1171187570193989762','rrrrrrrrrrrrrrrr',1699303276347]
    at module.exports.createError (/home/j44/Downloads/themer/tut/node_modules/mariadb/lib/misc/errors.js:64:10)
    at PacketNodeEncoded.readError (/home/j44/Downloads/themer/tut/node_modules/mariadb/lib/io/packet.js:582:19)
    at Query.readResponsePacket (/home/j44/Downloads/themer/tut/node_modules/mariadb/lib/cmd/parser.js:58:28)
    at PacketInputStream.receivePacketBasic (/home/j44/Downloads/themer/tut/node_modules/mariadb/lib/io/packet-input-stream.js:85:9)
    at PacketInputStream.onData (/home/j44/Downloads/themer/tut/node_modules/mariadb/lib/io/packet-input-stream.js:135:20)
    at Socket.emit (node:events:514:28)
    at addChunk (node:internal/streams/readable:376:12)
    at readableAddChunk (node:internal/streams/readable:349:9)
    at Readable.push (node:internal/streams/readable:286:10)
    at TCP.onStreamRead (node:internal/stream_base_commons:190:23) {
  sqlMessage: "Column count doesn't match value count at row 1",
  sql: "INSERT INTO thread value (no, head, ts) - parameters:['1171187570193989762','rrrrrrrrrrrrrrrr',1699303276347]",
  fatal: false,
  errno: 1136,
  sqlState: '21S01',
  code: 'ER_WRONG_VALUE_COUNT_ON_ROW'
}


SQL, programmieren, JavaScript, Datenbank, MySQL, node.js, Discord, Discord Bot
PHP-Login Fehler?

Guten Tag,

Ich habe einen Fehler beim einloggen in mein Loginsystem mit PHP. Ich kann user registrieren, also der username und der password_hash werden richtig in der DB gespeichert. Wenn ich mich aber mit einem bestehenden user der in der Datenbank existiert anmelden möchte, klappt das nicht und es kommt diese Fehlermeldung:

Fehlermeldung Beginn:

Warning: Trying to access array offset on value of type bool in C:\xampp\htdocs\login.php on line 16

Anmeldung fehlgeschlagen, versuche es erneut.

Fehlermeldung Ende.

Mein PHP register Script:

<?php

// Datenbankverbindung

include ('connection.php');

// Benutzereingabe aus Formular

$username = $_POST['username'];

$password = $_POST['password'];

// Das Passwort hashen

$hashedPassword = password_hash($password, PASSWORD_BCRYPT);

// SQL-Abfrage, um den Benutzer in der Datenbank zu speichern

$sql = "INSERT INTO users (username, password_hash) VALUES (?, ?)";

$stmt = $conn->prepare($sql);

$stmt->execute([$username, $hashedPassword]);

// Erfolgsmeldung oder Weiterleitung zur Anmeldeseite

header('Location: login.html');

?>

Mein PHP login Script:

<?php

// Datenbankverbindung

include ('connection.php');

// Benutzereingabe aus Formular

$username = $_POST['username'];

$password = $_POST['password'];

// SQL-Abfrage, um das gespeicherte Passwort abzurufen

$sql = "SELECT password_hash FROM users WHERE username = ?";

$stmt = $conn->prepare($sql);

$stmt->execute([$username]);

$row = $stmt->fetch();

// Überprüfen, ob das eingegebene Passwort korrekt ist

if ($row && password_verify($password, $row['password_hash'])) {

    // Anmeldung erfolgreich, führe die notwendigen Aktionen aus

    // z.B., setze eine Sitzung und leite den Benutzer weiter

    session_start();

    header('Location: index.html');

} else {

    echo "Anmeldung fehlgeschlagen, versuche es erneut.";

}

?>

Wäre cool wenn mir jemand bei diesem Problem weiterhelfen könnte, bin noch nicht so fit in dieser Thematik.

SQL, HTML, Webseite, Datenbank, MySQL, PHP, Programmiersprache, Webentwicklung
BigData - Milliarden Zeilen aus SQL Tables laden?

Anstatt direkt auf Stack-Overflow zu lümmeln möchte ich der deutschen Community mal ne Chance geben. In einem meiner Projekte geht es darum mehrere Millarden Zeilen an Relationalen Daten zu laden, lokal in einer DB zu speichern und dann in die Cloud zu laden.

  • Nein wir haben keinen Zugang zum Azure Backbone
  • Ja, traffic ist aktuell ein Problem aber nicht das Akute

Nun haben wir eine DB2 OnPrem und wir ich bisher in den Datagateways vorgegangen bin ist mit ORDER BY X OFFSET X FETCH FIRST X um die Datenmenge aufzuteilen und parallel abzuarbeiten.

Die o.g. Datenmenge von ein paar Milliarden setzen sich aus mehreren Tabellen zusammen, alle haben einen Primary Key. Jage ich nun eine Query mit Order-By über die Datenmenge, dauert das für 35k Datensätze ca. 2:15 Minuten.

Kurze Formel wegen dem Microbatching:

135 Sekunden * 256 (Microbratches) * 8 (Jobbatches) landen wir bei einer Ladezeit (READ ONLY) von ca. 76,8 Stunden.

Hat jemand von euch eine Idee, wie man das Problem angehend könnte?

Hier mein Lösungsansatz:

  1. Temptable der Quelle errichten, da ich auf die Quelle KEIN Lock setzen kann
  2. OrderBy weglassen und die physische reihenfolge des statischen Temptables als Faden für die Ingestion der Daten verwenden.

Mit dem Ansatz würde es nur ca. 12 * 256 * 8 Sekunden brauchen also 24.576 was durchaus akzeptabel wäre.

Für den Zukünftigen Real-Time Ansatz werden ohne hin in die Quellsysteme Events eingebaut, welche die eindeutige ID an die Gateways kommunizieren um die Daten in die Cloud zu transferieren. - Meiner Meinung nach der einzige Weg near-real-time in dieser Datenmenge zu realisieren (Gibts hier vielleicht alternative Vorschläge? - Ich kann ja nicht annehmen, dass jedes Quellsystem änderbar ist und ich möchte Insellösungen vermeiden)

Danke schonmal im Voraus :)

Grüße

SQL, Datenbank
Datenbanken Normalisierung - dritte Normalform bei folgender Tabelle?

Moin zusammen,

ich gehe vor meiner Prüfung nochmal einige Aufgaben durch, eine davon Normalisierung. Da wir keine Lösungen haben habe ich keine Chance mich selber zu kontrollieren. Chat GPT liefert auch jedesmal eine neue Lösung, der scheint auch nicht so zuverlässig zu sein. Die Aufgabe ist folgende:

1f) Zerlegen Sie die Tabelle so, dass sie der dritten Normalform genügt. Markieren Sie in Ihrer Zerlegung alle Primär- und Fremdschlüssel. In Ihrer Zerlegung dürfen Sie keine zusätzlichen Attribute etwa in Form künstlicher Schlüssel verwenden. (Die Tabelle füge ich hinzu).

Bei der dritten Form sollten ja alle Attribute voll funktional Abhängig vom Primärschlüssel sein. Somit müssen Spalten die nicht nur vom Primärschlüssel abhängig sind in eine weitere Tabelle ausgelagert werden.

Mein Lösungsvorschlag wäre gewesen (Primärschlüssel sind dick):

Tabelle 1: Serie Erfinder
Tabelle 2: Serie(Fremdschlüssel auf Tabelle1), Staffel, Folge, Titel, Länge, Special

Weitere Informationen zu der Tabelle:

  • Zu jeder Serie kann es mehrere Staffeln geben. Innerhalb einer Staffel kann es mehrere Folgen geben. Staffeln und Folgen sind durchnummeriert.
  • Jede Serie wurde von genau einer Person erfunden. Der Name der Person befindet sich in der Spalte ‚Erfinder’.
  • Einige Folgen sind so genannte Specials. Ob eine Folge ein Special ist, ist in der Spalte ‚Special’ vermerkt.

Bild zum Beitrag
Studium, SQL, IT, Datenbank, Informatik, Normalform, normalisierung
ChatBot wie ChatGPT programmieren? (Einfacher)?

Hi, mein großes Projekt für dieses Jahr soll sein, einen intelligenten ChatBot zu Coden. Ähnlich wie ChatGPT, aber mit ist natürlich bewusst, dass ich einen so komplexen Bot nicht machen kann. Es soll ein kleinerer werden.

Meine Vorstellungen:

Die Oberfläche mit HTML und CSS

Die Datenbank mit SQL? (ich habe wenig Erfahrung mit Datenbanken, deshalb das Fragezeichen)

Ansonsten die Logik eventuell mit JS, aber eventuell mit etwas anderem, da man ja über JS leicht Schadsoftware injizieren kann.

Könnt ihr mir da einen Vorschlag machen?

Die Funktion habe ich mir so vorgestellt:

In einer Datenbank sind entweder Schlüsselwörter oder komplette Antworten gespeichert. Zu jedem Schlüsselwort sollen Daten gespeichert sein. Wenn in der Datenbank nur Schlüsselwörter gespeichert sind, soll der Bot automatisch Sätze dazu formulieren.

Ein Beispiel:

Eingegebene Frage: Wer ist der Bundeskanzler von Deutschland?

(Bot Sicht spezielle Wörter im Text, z.B. Bundeskanzler und Deutschland)

in der Datenbank: Olaf Scholz (Daten zu ihm, Schlüsselwörter wann diese Antwort genutzt wird) z.B. Olaf Scholz (deutscher Kanzler, männlich, …)[Bundeskanzler+Deutschland, Olaf Scholz, Scholz]

In dem runden Klammern die Daten zu ihm, in den eckigen die Schlüsselwörter, wann die Antwort genutzt wird. Ansonsten halt vorgefertigte Antworten, die sich auch an Schlüsselwörtern in der Frage orientieren.

Wenn nur Wörter gespeichert sind, dann soll er sich einen Satz drumherum bauen.

Ich würde ihn im Browser laufen lassen, aber nicht öffentlich. Eventuell kann man ihn auch mit Google verknüpfen… auch wenn dann vermutlich die ein oder andere Antwort falsch ist. Aber das macht bei meinem nichts. Was haltet ihr davon? Wie würdet ihr es umsetzen? Welche Sprache? Eventuell ein paar Zeilen Code für bestimmte Funktionen?

LG

Programm, SQL, HTML, Programmierer, programmieren, CSS, Java, JavaScript, künstliche Intelligenz, Programmiersprache, Python, C (Programmiersprache), Chatbot, Python 3, Pygame, ChatGPT

Meistgelesene Beiträge zum Thema SQL