Mit MySQL Daten senden

Max2003

Neues Mitglied
Hallo ich habe mich einige zeit mit php aufeinander gesetzt und will jetzt anfrangen mit MySQL zu anfang wolle ich einfach nur fest gelegt werte senden das funktioniert aber nicht so ganz vie geplant hat von euch eine lösung

HTML:
HTML:
<form action="senden.php" method="get">
    <input type="submit" name="" value="senden" />
</form>

SQL Verbindung:
PHP:
$servername = "localhost";
$username = "root";
$password = "passwort";
$conn = mysqli_connect($servername, $username, $password);

Senden der daten:
PHP:
include "sql.php";

$zahl = "1";

$einfuegen = $conn->prepare("INSERT INTO test (zahl) VALUES (?)");
$einfuegen->bind_param('sss', $zahl);

Fehler:
Code:
 Fatal error: Uncaught mysqli_sql_exception: No database selected in C:\xampp\htdocs\senden.php:6 Stack trace: #0 C:\xampp\htdocs\senden.php(6): mysqli->prepare('INSERT INTO tes...') #1 {main} thrown in C:\xampp\htdocs\senden.php on line 6

Ich hoffe das ich mein Problem verständlich erklärt habe, und ich bedanke mich für jede hilfe
 
Zuletzt bearbeitet von einem Moderator:
Du hast dich zwar zur Mysql-DB verbunden, aber so eine Mysql DB verwaltet viele verschiedene User + Schemas.

Den Namen der DB, die du verwenden willst, kannst du mysqli_connect als 4ten Parameter angeben. Die musst du vorher allerdings auch angelegt haben.
 
Meinst du das so?

PHP:
$servername = "localhost";
$username = "root";
$dbname = "test"
$password = "passwort";

$conn = mysqli_connect($servername, $username, $password, $dbname);
 
Zuletzt bearbeitet:
Ok danke aber jetzt hat er noch etwas bei dem Senden in Zeile 7

Code:

PHP:
$zahl = "1";

$einfuegen = $conn->prepare("INSERT INTO test (zahl) VALUES (?)");
$einfuegen->bind_param('sss', $zahl);     [Das iste Zeile 7]

Es kann sein das es an dem "sss" liegt weill ich habe mit den Code auf dem Internet gefunden und es wurde nicht erklärt wo für das ist

Fehler:
Code:
Fatal error: Uncaught ArgumentCountError: The number of elements in the type definition string must match the number of bind variables in C:\xampp\htdocs\senden.php:7 Stack trace: #0 C:\xampp\htdocs\senden.php(7): mysqli_stmt->bind_param('1') #1 {main} thrown in C:\xampp\htdocs\senden.php on line 7
 
Zuletzt bearbeitet von einem Moderator:
Jeder Buchstabe in bin_param steht für ein Argument.
Du hast 3x ein "s" angegeben, entsprechend erwartet bind_param dann 3 Argumente vom Typ "string" (das "s" steht für "string", siehe hier: https://www.php.net/manual/de/mysqli-stmt.bind-param.php)

Das sollte funktionieren:
PHP:
<?php

$zahl = '1';

$einfuegen = $conn->prepare('INSERT INTO test (zahl) VALUES (?)');
$einfuegen->bind_param('s', $zahl);
Was aber vielleicht noch mehr Sinn macht wäre $zahl auch wirklich als Zahl zu nutzen.
PHP:
<?php

$zahl = 1; // <- keine Anführungszeichen

$einfuegen = $conn->prepare('INSERT INTO test (zahl) VALUES (?)');
$einfuegen->bind_param('i', $zahl); // <- 'i' statt 's'
 
Zurück
Oben Unten