Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Empfohlene Antworten

Veröffentlicht

Hallo ihr lieben,

stehe absolut aufm Schlauch :( ich bin seit ein paar Tagen dran, SQL zu lernen und möchte gerne per PHP was in eine SQL Tabelle eintragen. 
Ich hatte erst eine "test" Tabelle gemacht, dort klappt es auch. In der richtigen Tabelle habe ich jedoch andere variablen und dort funktioniert es leider nicht.. 

Als Beispiel ist Bild 1 der test, in dem das ganze funktioniert. 
Bild 2 ist das, was funktionieren soll, es aber nicht tut :(

Es soll praktisch sowas rauskommen wie bei der Tabelle mit Max Mustermann ..... (Das habe ich manuell bei SQL eingetragen)

Wenn ich das ganze jetzt ausgefüllt habe und absenden möchte kommen die error "Warning: mysqli_connect(): (HY000/1044): Access denied for user ''@'localhost' to database 'projekt_clab' in C:\xampp\htdocs\Clab.php on line 12 Notice: Undefined index: Vorname in C:\xampp\htdocs\Clab.php on line 17 Notice: Undefined index: Nachname in C:\xampp\htdocs\Clab.php on line 18 Notice: Undefined index: Telefonnummer in C:\xampp\htdocs\Clab.php on line 19 Notice: Undefined index: Raum in C:\xampp\htdocs\Clab.php on line 20 Notice: Undefined index: Gerät in C:\xampp\htdocs\Clab.php on line 21 Fatal error: Uncaught Error: Call to a member function prepare() on boolean in C:\xampp\htdocs\Clab.php:23 Stack trace: #0 {main} thrown in C:\xampp\htdocs\Clab.php on line 23"..

 

Bild1.JPG

bild1..JPG

bild2.JPG

bild2..JPG

Bearbeitet von DomentusTM

  • Autor
vor 1 Minute schrieb Gottlike:

Deine Tabelle heißt Geraet und nicht Gerät, wie in deinen prepared Statement angegeben. Generell würde ich auf Umlaute in Variablen und Tabellenbezeichnern gänzlich verzichten.

Habs geändert, aber geht leider immernoch nicht :( Jetzt kommt die Fehlermeldung "Parse error: syntax error, unexpected '$nutzerID' (T_VARIABLE), expecting ',' or ')' in C:\xampp\htdocs\Clab.php on line 28"

  • Autor

Daraufhin kommt diese Fehlermeldung ._.

Warning: mysqli_connect(): (HY000/1044): Access denied for user ''@'localhost' to database 'projekt_clab' in C:\xampp\htdocs\Clab.php on line 14

Notice: Undefined index: Nutzer_ID in C:\xampp\htdocs\Clab.php on line 19

Notice: Undefined index: Vorname in C:\xampp\htdocs\Clab.php on line 20

Notice: Undefined index: Nachname in C:\xampp\htdocs\Clab.php on line 21

Notice: Undefined index: Telefonnummer in C:\xampp\htdocs\Clab.php on line 23

Notice: Undefined index: Raum in C:\xampp\htdocs\Clab.php on line 24

Notice: Undefined index: Geraet in C:\xampp\htdocs\Clab.php on line 25

Fatal error: Uncaught Error: Call to a member function prepare() on boolean in C:\xampp\htdocs\Clab.php:27 Stack trace: #0 {main} thrown in C:\xampp\htdocs\Clab.php on line 27

vor 2 Minuten schrieb DomentusTM:

Habs geändert, aber geht leider immernoch nicht :( Jetzt kommt die Fehlermeldung "Parse error: syntax error, unexpected '$nutzerID' (T_VARIABLE), expecting ',' or ')' in C:\xampp\htdocs\Clab.php on line 28"

Wechsel mal noch das VALUES(?,?,?,?,?,?,?())" in VALUES(?,?,?,?,?,?,?)"

Die beiden Klammern wurden nur für die Funktion NOW() genutzt, die das aktuelle Datum + Zeit ausgeben

  • Autor
Gerade eben schrieb Gottlike:

Wechsel mal noch das VALUES(?,?,?,?,?,?,?())" in VALUES(?,?,?,?,?,?,?)"

Die beiden Klammern wurden nur für die Funktion NOW() genutzt, die das aktuelle Datum + Zeit ausgeben

Sind leider immernoch da die Fehlermeldungen 

  • Autor
vor 1 Minute schrieb Rienne:

Vergleich doch einfach mal deinen Code mit dem Testcode. Da fällt dann z.B. auf, dass dort die Namen und nicht die Placeholder hingehören.

Wie meinst du das? 

Du schreibst in Zeile 19 zum Beispiel 'Nutzer_ID' der Spaltenname ist aber 'nutzerID'. 'Nutzer_ID' ist ja nur der von dir oben definierte Placeholder. Auch solltest du auf die case sensitivity achten.

Bearbeitet von Rienne

  • Autor

<form action="" method="post">
 <input type="text" name="Nutzer_ID" placeholder="Nutzer_ID"><br>
 <input type="text" name="Vorname" placeholder="Vorname"><br>
 <input type="text" name="Nachname" placeholder="Nachname"><br>
 <input type="text" name="E-Mail" placeholder="E-Mail"><br>
 <input type="text" name="Telefonnummer" placeholder="Telefonnummer"><br>
 <input type="text" name="Raum" placeholder="Raum"><br>
 <input type="text" name="Geraet" placeholder="Gerät"><br>
 <input type="submit" name="submit" value="Absenden"><br>
</form>

<?php

$db = mysqli_connect("localhost","","","projekt_clab");

if(isset($_POST["submit"])):
    $nutzerID = $_POST['Nutzer_ID'];
    $vorname = $_POST['Vorname'];
    $nachname = $_POST['Nachname'];
    $email = $_POST['E-Mail'];
    $telefonnummer = $_POST['Telefonnummer'];
    $raum = $_POST['Raum'];
    $gerät = $_POST['Geraet'];
    
    $absenden = $db->prepare("INSERT INTO nutzer (Nutzer_ID ,Vorname, Nachname, E-Mail, Telefonnummer, Raum, Geraet) VALUES (?,?,?,?,?,?,?)");
    $absenden->bind_param('isssiis',$nutzerID,$vorname,$nachname,$email,$telefonnummer,$raum,$geraet);
    $absenden->execute();
endif;
?>

Gerade eben schrieb PVoss:

$db = mysqli_connect("localhost","","","projekt_clab"); 

Da fehlen Username (und evtl. Passwort) um zur Datenbank zu verbinden.

Jup, die fehlen aber oben auch. Da funktioniert es ja. Existiert überhaupt die db projekt_clab oder hast du sie anders genannt/konfiguriert?

  • Autor
vor 1 Minute schrieb PVoss:

$db = mysqli_connect("localhost","","","projekt_clab"); 

Da fehlen Username (und evtl. Passwort) um zur Datenbank zu verbinden.

 

Habe kein Username und Passwort.. Und in der test datei ging das ja auch ohne :x 

Gerade eben schrieb PVoss:

Da fehlen Username (und evtl. Passwort) um zur Datenbank zu verbinden.

Fehlen in dem Beispielcode auch. Das ist nicht der Fehler. Er nutzt nicht die korrekten Namen für die Spalten und die beiden Klammern in Zeile 27 müssen weg, so wie @Gottlike geschrieben hat. Das sind zumindest die Fehler, die die Fehlermeldungen betreffen.

 

  • Autor
Gerade eben schrieb Gottlike:

Jup, die fehlen aber oben auch. Da funktioniert es ja. Existiert überhaupt die db projekt_clab oder hast du sie anders genannt/konfiguriert?

die heißt in der Datenbank auch "projekt_clab"

clab.JPG

  • Autor
Gerade eben schrieb Rienne:

Fehlen in dem Beispielcode auch. Das ist nicht der Fehler. Er nutzt nicht die korrekten Namen für die Spalten und die beiden Klammern in Zeile 27 müssen weg, so wie @Gottlike geschrieben hat. Das sind zumindest die Fehler, die die Fehlermeldungen betreffen.

 

die beiden klammern hinter dem letzten ? habe ich ja weg gemacht 

if(isset($_POST["submit"])):
    $nutzerID = $_POST['nutzerID'];
    $vorname = $_POST['vorname'];
    $nachname = $_POST['nachname'];
    $email = $_POST['E-Mail'];
    $telefonnummer = $_POST['telefonnummer'];
    $raum = $_POST['raum'];
    $gerät = $_POST['geraet']; bzw.   $gerät = $_POST['gerät']

vor 16 Minuten schrieb DomentusTM:

mysqli_connect(): (HY000/1044): Access denied for user ''@'localhost' to database 'projekt_clab' in C:\xampp\htdocs\Clab.php on line 14

Naja, entweder Username und Passwort sind falsch oder es gibt die Datenbank nicht^^'

Es wird auf jeden Fall mal Zeit zu debuggen: http://php.net/manual/de/mysqli.error.php

 

 

Sind die Notices über die undefined indexes noch aktuell? Laut dem letzten Code stimmen Index und Input-Namen ja überein.

Bearbeitet von PVoss

  • Autor

Warning: mysqli_connect(): (HY000/1044): Access denied for user ''@'localhost' to database 'projekt_clab' in C:\xampp\htdocs\Clab.php on line 14

Notice: Trying to get property 'connect_errno' of non-object in C:\xampp\htdocs\Clab.php on line 16

Notice: Undefined index: geraet in C:\xampp\htdocs\Clab.php on line 30

Fatal error: Uncaught Error: Call to a member function prepare() on boolean in C:\xampp\htdocs\Clab.php:32 Stack trace: #0 {main} thrown in C:\xampp\htdocs\Clab.php on line 32

vor 1 Minute schrieb Gottlike:

Füg mal noch ein

      if ($db -> connect_errno)
      {
       
printf("Verbindung fehlgeschlagen: %s\n", $db->connect_error);
        exit();
      }

nach der Verbindung zur Datenbank ein. Und gib uns die Fehlermeldung durch.

 

Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.