Fehler MYSQL (INSERT INTO)

CMSascha

WWW.SN-W.DE
ID: 452663
L
19 Dezember 2013
291
0
Guten Tag,

ich habe da einen Fehler, bei dem ich leider nicht mehr weiter weiß...

HTML:
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 '127.0.0.1,'+49123456789')' at line 1

Können Sie mir dort bitte einmal weiterhelfen?! Ich finde keine Lösung dazu.

Danke schonmal!
CMSascha
 
Zuletzt bearbeitet:
Alsooo…

  1. kann "register_globals und safe_mode anmachen" niemals die Antwort sein, wenn man was programmiert!
    Konsultiere dazu bitte die PHP.net-Seiten zu safe-mode?und register globals, insbesonderen den Teil wo steht "Dieses Feature ist seit PHP 5.3.0 DEPRECATED (veraltet) und seit PHP 5.4.0 ENTFERNT".
  2. hatte apolle schon recht, die Quotes müssen da hin sonst wird es über kurz oder lang nicht funktionieren (je nach Daten die eingetragen werden sollen)

Nur zwei Tipps, damit es auch in Zukunft funktioniert…
 
Es lag an den Webspace-Einstellungen register_globals und safe_mode. Die mussten an sein :)
Cool danke. Mit dem Code und der Info, dass du dank register_globals jeden beliebige Abfragen über die Adressezeile des Browsers über PHP direkt auf deinen MySQL-Server lässt, machst du sicherlich viele Leute glücklich :LOL: YMMD :LOL:
 
Cool danke. Mit dem Code und der Info, dass du dank register_globals jeden beliebige Abfragen über die Adressezeile des Browsers über PHP direkt auf deinen MySQL-Server lässt, machst du sicherlich viele Leute glücklich :LOL: YMMD :LOL:

Wir kennen ja auch die nicht-escapten Vars :D
 
Cool danke. Mit dem Code und der Info, dass du dank register_globals jeden beliebige Abfragen über die Adressezeile des Browsers über PHP direkt auf deinen MySQL-Server lässt, machst du sicherlich viele Leute glücklich :LOL: YMMD :LOL:

register_globals als Sicherheitsfeature anzusehen, ist wie in einem Haus mit offenen Fenster die Türen abzuschließen ... zum Schutz vor Einbrechern *g
 
register_globals als Sicherheitsfeature anzusehen, ist wie in einem Haus mit offenen Fenster die Türen abzuschließen ... zum Schutz vor Einbrechern *g

Du verwechselst da was: Die offenen Fenster dienen nicht als Schutz vor Einbrechern sondern zum Schutz der Einbrecher. Scheiben einschlagen ist nämlich gefährlich, dabei kann man sich schwere Verletzungen zuziehen... :mrgreen:
 
Du verwechselst da was: Die offenen Fenster dienen nicht als Schutz vor Einbrechern sondern zum Schutz der Einbrecher. Scheiben einschlagen ist nämlich gefährlich, dabei kann man sich schwere Verletzungen zuziehen... :mrgreen:

Auch genial :mrgreen:

Mit den SQL Statements über die Browserzeile hat er allerdings Recht.
Während man früher noch valide Statements in SQL Injections suchen musste, hat Firefox ab der Version 39.01 das Feature, direkt SQL Statements auf den SQL Server zu jagen.
Die entsprechenden Zugangsdaten erhält er Dank register_globals direkt vom Webserver, so dass man sich zukünftig diese nervige Frimelei sparen kann. Ab der Version 40 soll übrigens ein neuer Meilenstein gesetzt werden über den PHP zukünftig gänzlich abgeschafft werden kann. Über das setzen entsprechender Werte in der php.ini, sollen dann serverseitige Scripte direkt in HTML ausgeführt werden können, setzt man ein entsprechendes HTML Tag <sudo> sogar mit erweiterten Rechten.

Weiß nur wieder keiner.
 
Guckst Du hier:
https://www.tutorialspoint.com/mysql/mysql-insert-query.htm

(zweites Beispiel: Inserting Data Using PHP Script)

... VALUES ('$vorname', '$nachname', '$email', '$strasse', '$hausnummer', '$wohnort', '$plz', '$land', '$ip', '$tel') ...

Falls die Vars schon alle escapt sind, wäre es so gequotet wohl richtiger ;)

PHP:
VALUES ('" . $vorname . "', '" . $nachname . "', '" . $email . "'..............

Bei der vorherigen Methode packst du die Vars als Keys in die DB, jetzt die Values der Vars ;)
 
CMSascha scheint ja eh nicht so der Anhänger von unseren Tipps zu sein, aber ich werfe trotzdem einfach mal Prepared Statements in den Thread :p
 
Eben nicht ;)

mit '$var' packst du $var als String in die Datenbank, mit '" . $var . "' das Value von $var
Was für ein Müll :roll:

Probiers halt aus:
PHP:
$foo = 'Ich bin ein String';
mysql_query("INSERT INTO test (field) VALUES ('$foo')")
... was steht in deiner Datenbank?
 
OMFG! :wall:
Kannst du dich bitte aus PHP-Threads fernhalten, wenn du keinen Schimmer von der Programmiersprache hast? Vielen Dank.

Da, bei mir funktioniert PHP:
Code:
[FONT=Courier New]thehacker@hera:~$ echo "create table test (field varchar(32));" | mysql -u root -p -h development-server test
Enter password: 
thehacker@hera:~$ php 
<?php
mysql_connect("development-server", "root", "root");
mysql_select_db("test");
$foo = 'Ich bin ein String';
mysql_query("INSERT INTO test (field) VALUES ('$foo')");
?>
thehacker@hera:~$ mysql -u root -p -h development-server test -e "SELECT * FROM test"
Enter password: 
+--------------------+
| field              |
+--------------------+
| Ich bin ein String |
+--------------------+[/FONT]
 
OMFG! :wall:
Kannst du dich bitte aus PHP-Threads fernhalten, wenn du keinen Schimmer von der Programmiersprache hast? Vielen Dank.

Da, bei mir funktioniert PHP:
Code:
[FONT=Courier New]thehacker@hera:~$ echo "create table test (field varchar(32));" | mysql -u root -p -h development-server test
Enter password: 
thehacker@hera:~$ php 
<?php
mysql_connect("development-server", "root", "root");
mysql_select_db("test");
$foo = 'Ich bin ein String';
mysql_query("INSERT INTO test (field) VALUES ('$foo')");
?>
thehacker@hera:~$ mysql -u root -p -h development-server test -e "SELECT * FROM test"
Enter password: 
+--------------------+
| field              |
+--------------------+
| Ich bin ein String |
+--------------------+[/FONT]

Halt mal die Backen still. Kein Mensch hat etwas davon geschrieben, das es in einem PHP-Script sein sollte, füge deine Laien-Query mal im PHPMyadmin ein, dann siehst du sofort, was Sache ist, aber erst mal grotzkotzig rumposaunen, gell?
Für die ganz dummen: Füge das im Phpmyadmin ein, wenn du dann noch immer erzählst, es würde nicht stimmen, wissen wir ja, wer von uns der Laie in Sachen Programmieren ist:
INSERT INTO test (field) VALUES ('$foo');
 
Halt mal die Backen still. Kein Mensch hat etwas davon geschrieben, das es in einem PHP-Script sein sollte, füge deine Laien-Query mal im PHPMyadmin ein, dann siehst du sofort, was Sache ist, aber erst mal grotzkotzig rumposaunen, gell?
Für die ganz dummen: Füge das im Phpmyadmin ein, wenn du dann noch immer erzählst, es würde nicht stimmen, wissen wir ja, wer von uns der Laie in Sachen Programmieren ist:
INSERT INTO test (field) VALUES ('$foo');

Es ist etwas komplett anderes, wenn du es direkt in PHPMyadmin ausführst oder per PHP-Script. Und in der Überschrift kannst du doch deutlich lesen "PHP/MySQL" oder? Das bedeutet, dass es hier um PHP-Scripts geht!!

Zudem hat sich das Problem erledigt!
 
füge deine Laien-Query mal im PHPMyadmin ein, dann siehst du sofort, was Sache ist, aber erst mal grotzkotzig rumposaunen, gell?

Wow… ich mein, ich hab nix gegen Leute, die nicht programmieren können. Aber Leute, die so großkotzig ihr Unwissen zur Schau stellen und andere damit auch noch beleidigen wollen, sind echt eine ganz besondere Sorte Mensch…