• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Datenbanksätze erzeugen problem

manager17

Mitglied
Hey Com,

Ein Nutzer kann seine Dateneingeben und dadurch erscheint in meiner Datenbank eine Tabelle bzw. ein Datensatz über seine Informationen bzw. er gibt seine Daten ein die werden dann gesendet. Jedoch steht da immer es ist ein fehler aufgetreten bei meiner else anweisung.

Code:
Code:
<html>

<head>
<?php
if (isset($_POST["gesendet"]))
{
    $con = mysqli_connect("", "root");
    mysqli_select_db($con, "unternehmen");
   
    $sql = "insert mitglieder" . "(vorname, name, msnummer, gehalt) values " . "('" . $_POST["na"] . "', " . "'" . $_POST["vn"] . "', " . $_POST["pn"] . " , " .
    $_POST["ge"] . "')";
   
    mysqli_query($con, $sql);
    $num = mysqli_affected_rows($con);
    if ($num>0)
    {
    echo " Es wurde 1 Datensatz hinzugefügt";
    }
    else
    {
    echo " Es ist ein fehler aufgetreten";
    }
   
    mysqli_close($con);
}
?>
</head>

<body>
<form action="index.php" method="post">
<p><input name="na"> Name</p>
<p><input name="vn"> Vorname</p>
<p><input name="pn"> Pnummer</p>
<p><input name="ge"> Gehalt</p>
<p><input type="submit" name="gesendet">
</form>


</body>
</html>

Was ist daran falsch?
 
Werbung:
Einfach mal die Datenbank fragen:
PHP:
mysqli_query($con, $sql)
   or die ("MySQL-Error: " . mysqli_error($con));
 
Nein alles klappt ja nur das Senden zeigt ein Problem ich meine hier ist ein ähnliches Programm doch da klappt es:
Code:
<html>
<head>
<?php
if (isset($_POST["gesendet"]))
{
    $con = mysqli_connect("", "root");
    mysqli_select_db($con, "bank");
 
    $sql = "insert personen"
    . "(name, vorname, personalnummer,"
    . "gehalt, geburtstag) values "
    . "('" . $_POST["na"] . "', "
    . "'" . $_POST["vn"] . "', "
    . $_POST["pn"] . ", "
    . $_POST["ge"] . ","
    . "'" . $_POST["gt"] . "')";
 
    mysqli_query($con, $sql);
 
    $num = mysqli_affected_rows($con);
    if ($num>0)
    {
        echo " 1 Datensatz hinzugefügt ";
    }
    else
    {
    echo "Es ist ein Fehler aufgetreten";
    }
}
?>
</head>

<body>
<form action="index.php" method="post">
<p><input name="na"> Name</p>
<p><input name="vn"> Vorname</p>
<p><input name="pn"> Personalnummer</p>
<p><input name="ge"> Gehalt</p>
<p><input name="gt"> Geburtstag</p>
<p><input type="submit" name="gesendet">

</body>

</html>
 
Werbung:
Baue mysqli_error ein oder lass' es!

Offensichtlich scheint ein DB-Problem vorzuliegen und da fragt man einfach mal die DB, was ihr am Insert nicht passt
 
Hab es hinzugefügt hattest recht , habs jetz verstanden aber eine Frage am Rande noch.

Es funktoniert bei mir so:
Code:
$sql = "insert personen" . "(name, vorname, personalnummer, gehalt, geburtstag) values " . "('" . $_POST["na"] . "', " . " '" . $_POST["vn"] . "', " . " '" . $_POST["pn"] . "', " . " '" .  $_POST["ge"] . "'," . "'" . $_POST["gt"] . "')";

Gibt es auch vllt ne einfache Lösung or ist das schon einfach? Weil das ganze nach Values mit dem Kommer etc ist etwas unübersichtlich
 
Du könntest z.b. nicht unnötig konkatenieren. Das wäre mal die ersten vereinfachung


Dann gäbe es ja noch PDO, da wäre dann auch die Security lücke weg...
 
Werbung:
Danke erstmals! Aber wie soll ich es jetz dann aufschreiben? wenn ich $sql = INSERT INTO ... schreibe erscheint:

Parse error: syntax error, unexpected 'INTO' (T_STRING) in C:\xampplinux\htdocs\index.php on line 10

Der Fehler ist in line 10 mit $sql INSERT INTO
 
Werbung:
Hab auch mit Anführungszeichen gemacht. Doch:
Parse error: syntax error, unexpected '' (T_ENCAPSED_AND_WHITESPACE), expecting identifier (T_STRING) or variable (T_VARIABLE) or number (T_NUM_STRING) in C:\xampplinux\htdocs\index.php on line 9

Code:
Code:
<html>

<head>

</head>

<body>
<?php
if (isset($_POST["gesendet"]))
{
$con = mysqli_connect("", "root");
mysqli_select_db($con, "bank");
                                                                //  '" . $_POST["eintrag"] . "' , " . "  \\ BEI JEDEM SO !!
$sql = "INSERT INTO meineDB (spalte1, spalte2) VALUES (mysqli_real_escape_string($_POST['val1']), mysqli_real_escape_string($_POST['val2']))";
mysqli_query($con, $sql);
$num = mysqli_affected_rows($con);
if($num>0)
{
echo " 1 Datensatz hinzugefügt ";
}
else
{
echo " Es ist ein Fehler aufgetreten";
}
}
?>
</body>

</html>

Natürlich sind die INSERT Sachen bei mir schon richtig eingetragen ,
 
Zurück
Oben