Datenbanksätze erzeugen problem

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]

<?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);

}
?>

Name

Vorname

Pnummer

Gehalt

[/CODE]

Was ist daran falsch?

Einfach mal die Datenbank fragen:
[php]
mysqli_query($con, $sql)
or die ("MySQL-Error: " . mysqli_error($con));
[/php]

Nein alles klappt ja nur das Senden zeigt ein Problem ich meine hier ist ein ähnliches Programm doch da klappt es:

[CODE]

<?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";
}

}
?>

Name

Vorname

Personalnummer

Gehalt

Geburtstag

[/CODE]

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:

$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…

Es gibt mehrere Schreibweisen für ein INSERT INTO-Statement, welche Du im Handbuch nachlesen kannst:
http://dev.mysql.com/doc/refman/5.6/en/insert.html

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

wie wärs mit anführungszeichen?

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]

<?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"; } } ?> [/CODE]

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

Erkundige dich bitte nach sql injection im Netz. Gruß