Antworten auf deine Fragen:
Neues Thema erstellen

mysql Insert funktioniert nicht...

mathi77

Nicht mehr ganz neu hier

Hallo,

vorab mal Frohe Weihnachten im Nachhinein!! O:)

Sitz gerade an meinem Projekt und seh vor lauter "'; keine Fehler mehr....

Bin blutiger Anfänger und ich erhalte leider immer wieder die Fehlermeldung:
ERROR: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ')' at line 19

der php code ist wie folgt:
<?php require ("includes/schuetzen.inc.php");
require ("includes/connect.inc.php");

if (count($_POST)>0)
{

// Anfrage zusammenstellen der an die DB geschickt werden soll
$sql = "INSERT INTO tbl_kunden
(Kdnr, Firma, Strasse, Hausnr, Land, PLZ, Ort, TelVW, TelNR, Fax, Mobil, Email, WWW, Ansprechperson, Anmerkungen)
VALUES(
'" .$_POST["Kdnr"]. "',
'" .$_POST["Firma"]. "',
'" .$_POST["Strasse"]. "',
'" .$_POST["Hausnr"]. "',
'" .$_POST["Land"]. "',
'" .$_POST["PLZ"]. "',
'" .$_POST["Ort"]. "',
'" .$_POST["TelVW"]. "',
'" .$_POST["TelNR"]. "',
'" .$_POST["Mobil"]. "',
'" .$_POST["Fax"]. "',
'" .$_POST["Email"]. "',
'" .$_POST["WWW"]. "',
'" .$_POST["Ansprechperson"]. "',
'" .$_POST["Anmerkungen"]. "',
)";

// Schickt die Anfrage an die DB und schreibt die Daten in die Tabelle
$query = mysql_query( $sql ) or die("ERROR: ".mysql_error());

// Pruefen ob der neue Datensatz tatsaechlich eingefuegt wurde
if (mysql_num_rows($query) == 1)
{
echo "<h3>Der Datensatz wurde hinzugefügt!</h3>";

}
else
{
echo "<h3>Der Datensatz konnte <strong>nicht</strong> hinzugefügt werden!</h3>";
}
}

?>

Sitz schon seit einer geschlagenen Stunde dran und finde den Fehler nicht! :'(

und hier das phpMyAdmin


Könnt ihr mir da bitte weiterhelfen? DANKE DANKE im voraus für Eure Hilfe und Tipps! :danke:

liebe Grüße Mathi
 

AW: mysql Insert funktioniert nicht...

entspricht diese Zeile 19 hier, auch deiner Zeile 19?

Kleiner Tipp am rande: Ich frage die Daten von Forms immer am Anfang ab, und lege sie in vars, also z.B. $firma = $_POST["Firma"]; das ist meiner Meinung nach auf jeden Fall übersichtlicher

grüße
 
AW: mysql Insert funktioniert nicht...

Hallo taffrot,

danke für den Tipp, werd ich gleich umsetzen!

Nein leider ist die Zeile 19 nicht die als Fehler Zeile 19 rauskommt!
Gibts da einen Trick wie ich das rausfinde wo der Fehler liegt oder ist grundsätzlich ein Fehler in meinem Code??

danke :-)

lg Mathi
 
AW: mysql Insert funktioniert nicht...

ich würde dir raten, ersteinmal nur einen Wert eintragen zu lassen, um zu schaun, ob das wenigstens funktioniert. Dann ist die lokalisation des Fehlers schonmal leichter.
Du kannst ja den Code danach nochmal posten.

grüße
 
AW: mysql Insert funktioniert nicht...

in der vorletzten Zeile hast du ein überzähliges hochkomma und komma
PHP:
'" .$_POST["Anmerkungen"]. "',
 
AW: mysql Insert funktioniert nicht...

Hallo,

ich habs mal nun mit 1 wert probiert, krieg trotzdem die Zeile 19 als Fehlermeldung :-(

<?php require ("includes/schuetzen.inc.php");
require ("includes/connect.inc.php");

if (count($_POST)>0)
{

// Inhalte der Felder aus POST holen
$Kdnr = $_POST["Kdnr"];

// Anfrage zusammenstellen der an die DB geschickt werden soll
$sql = "INSERT INTO tbl_kunden (Kdnr) VALUES ('$Kdnr')";

// Schickt die Anfrage an die DB und schreibt die Daten in die Tabelle
$query = mysql_query( $sql ) or die("ERROR: ".mysql_error());

// Pruefen ob der neue Datensatz tatsaechlich eingefuegt wurde
if (mysql_num_rows($query) == 1)
{
echo "<h3>Der Datensatz wurde hinzugefügt!</h3>";

}
else
{
echo "<h3>Der Datensatz konnte <strong>nicht</strong> hinzugefügt werden!</h3>";
}
}

?>

Woran liegts nur?

lg Mathi
 
AW: mysql Insert funktioniert nicht...

'" .$_POST["Anmerkungen"]. "',
)";

der müsste eigentlich so sein:

'".$_POST["Anmerkungen"]."')";

Kleiner Tipp: Die SQL Zeile mit einfachen Werten direkt bei PHPMyAdmin als SQL Befehl einfügen.

Wenn dort der SQL einwandfrei durchgeht, ist der Fehler im PHP zu suchen (wie oben ein , zuviel etc). Ebenso kann man aus dem fehlerfreien SQL Befehl per Copy & Paste eigentlich die PHP Zeile sauber generieren.

Ich hab das eben mal mit deiner Tabelle nachgespielt und wenn ich das "," am Ende wegnehme, klappt es wunderbar in PHPMYAdmin. Mit dem "," nach der Anmerkung kommt halt Fehler in Zeile 19.

Gruß
Chris
 
AW: mysql Insert funktioniert nicht...

Fast earlgrey. Es müsste so sein:
Code:
'". $_POST['Anmerkungen'] ."')";
Aber das ist auch nicht korrekt, weil letztlich die Anführungszeichen nicht richtig gesetzt werden.

Erst mal das testen:
Code:
$sql = 'INSERT INTO tbl_kunden (Kdnr) VALUES ("'. $_POST['Kdnr'] .'")';
und später verbessert in
Code:
$sql = 'INSERT INTO tbl_kunden (Kdnr) VALUES ("'. mysql_real_escape_string($_POST['Kdnr']) .'")';
Aus Sicherheitsgründen versteht sich.
 
AW: mysql Insert funktioniert nicht...

Vielen Dank an Alle, es funzt!!! :danke:

@saila: hab deinen Verbesserungsvorschlag auch eingebaut...

macht doch irgendwie Spaß wenns funktioniert :daumenhoch:

Liebe Grüße Mathi
 
AW: mysql Insert funktioniert nicht...

Fast earlgrey. Es müsste so sein:
Code:
'". $_POST['Anmerkungen'] ."')";
Aber das ist auch nicht korrekt, weil letztlich die Anführungszeichen nicht richtig gesetzt werden.

Die Anführungsstriche sind gar kein Thema dabei. Das funktioniert, ich hab ja nur einen Auszug aus dem erst geposten gegeben.

Die Anzahl der " " müssen nur jeweils als Anfang und Ende eine Passage passen und das hatte ich gegeben. Einfach mal durchzählen :) Sollte passen.

Der Fehler war eh nur am letzten Kommata, denn SQL wollte da noch ein (leeres) Feld anhängen, welches aber im Values nicht definiert wurde. Somit konnte nur ein Fehler kommen.

Aber schön dass es nun funktioniert :) Hauptsache erfüllt.

Gruß
Chris
 
AW: mysql Insert funktioniert nicht...

generell sollten alle Eingaben die von Benutzern kommen mindestens mit mysql_real_escape_string escaptet werden, denn sonst ist ein leichtes in deiner Anwendung MYSQL Injektions zu machen.
 
AW: mysql Insert funktioniert nicht...

danke, hab mysql_real_escape_string bereits umgesetzt!

noch eine kleine Zusatzfrage:

Wie & Wo plant Ihr Eure MySql Datenbank - sprich macht ihr vorher schon mal einen Strukturplan zur besseren Übersicht mit ID`s, FID`s, Tabellennamen, Verknüpfungen usw.?

Vielleicht im Excell oder gibts da eine bessere Lösung? ;)

Danke euch, glg Mathi
 
AW: mysql Insert funktioniert nicht...

es kommt immer ganz darauf an, wie groß das Projekt ist.

Bei etwas größeren Projekten bietet es sich an, sich die Tabellen, ID, Primärschlüssel, Fremdschlüssel in z. B. Excel aufzulisten.

phpMyAdmin bietet mit dem Database Designer ein Tool an, mit dem man sich schon ganz leicht einen Überblick über die einzelnen Tabellen verschaffen kann und wie die einzelnen Verknüpfungen sind. Leider ist dies erst in den neueren Versionen von phpMyAdmin hinzugekommen und nicht alle Hoster setzen eine aktuelle Mysql Version + ein aktuelles phpMyAdmin ein.
 
AW: mysql Insert funktioniert nicht...

danke, hab mysql_real_escape_string bereits umgesetzt!

noch eine kleine Zusatzfrage:

Wie & Wo plant Ihr Eure MySql Datenbank - sprich macht ihr vorher schon mal einen Strukturplan zur besseren Übersicht mit ID`s, FID`s, Tabellennamen, Verknüpfungen usw.?

Vielleicht im Excell oder gibts da eine bessere Lösung? ;)

Danke euch, glg Mathi

 
AW: mysql Insert funktioniert nicht...

Also dbDesigner ist wirklich nicht schlecht, schade eigentlich das davon die Weiterentwicklung eingestellt wurde.

Allerdings denke ich, für ein kleines Projekt reicht es auch wenn man sich eben die Tabellen in Excel "aufmalt".
 
AW: mysql Insert funktioniert nicht...

Also dbDesigner ist wirklich nicht schlecht, schade eigentlich das davon die Weiterentwicklung eingestellt wurde.

Allerdings denke ich, für ein kleines Projekt reicht es auch wenn man sich eben die Tabellen in Excel "aufmalt".

Soviel ich weis wird von mysql ein DB-Designer im Paket des Query-Browser mitgeliefert. Hatte allerdings noch keine Zeit mir das genauer anzusehen obgleich ich immer mit dem Query-Browser arbeite.
Falls er da nicht dabei sein sollte, von mysql wird ein Designer zumindest angeboten - ich hab ihn schon gesehen :) :)

phpMyAdmin nutze ich eigentl. nur noch falls ich online etwas mir ansehen muss. Local ist aber definitiv der Query-Browser das angesagteste - zumindest bei mir :)
 
AW: mysql Insert funktioniert nicht...

ich muss sagen, das ich den Query Browser gar nicht kenne.

auf der Arbeit und ich privat arbeite eigentlich ausschließlich bei Webprojekten mit phpMyAdmin. Aber wirklich sollte ich mir mal wirklich den queryBrowser anschauen.
 
AW: mysql Insert funktioniert nicht...

Also bei den Projekten nehme ich in der Entwicklung local den QB und wie gesagt online phpMA. Der QB ist extrem einfach von der Handhabung und du kannst mehrere Query's definieren und einzeln auslösen um die Ergebnisse z.B. zu sehen.

Auch Anpassungen in der DB-Struktur sind deutlich einfacher. Teste mal - wirst begeistert sein.
 
AW: mysql Insert funktioniert nicht...

Hallo zusammen!

Das Problem liegt leider nicht in dem Code, den gepostet hat!
Das Problem liegt wahrscheinlich in einer der verknüpften Dateien ("includes/schuetzen.inc.php", "includes/connect.inc.php")!

Ohne diesen Code, wird das Problem schwer zu lösen sein!

LG Shadow6
 
Bilder bitte hier hochladen und danach über das Bild-Icon (Direktlink vorher kopieren) platzieren.
Antworten auf deine Fragen:
Neues Thema erstellen

Willkommen auf PSD-Tutorials.de

In unseren Foren vernetzt du dich mit anderen Personen, um dich rund um die Themen Fotografie, Grafik, Gestaltung, Bildbearbeitung und 3D auszutauschen. Außerdem schalten wir für dich regelmäßig kostenlose Inhalte frei. Liebe Grüße senden dir die PSD-Gründer Stefan und Matthias Petri aus Waren an der Müritz. Hier erfährst du mehr über uns.

Stefan und Matthias Petri von PSD-Tutorials.de

Nächster neuer Gratisinhalt

03
Stunden
:
:
25
Minuten
:
:
19
Sekunden

Flatrate für Tutorials, Assets, Vorlagen

Zurzeit aktive Besucher

Statistik des Forums

Themen
118.957
Beiträge
1.540.104
Mitglieder
68.129
Neuestes Mitglied
FlarWolhev
Oben