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

Query wird nicht ausgeführt

htmlphp

Mitglied
Bei
PHP:
$dbconnection = mysql_connect($dbhost, $dbuser, $dbpass) or die(mysql_error());
mysql_select_db($dbname, $dbconnection) or die(mysql_error());
mysql_query("INSERT INTO table ('name', 'alter', 'ort', 'bild', 'quali', 'beschreibung', 'owner')
                VALUES ('$name', '$alter', '$ort', '$bild', '$quali', '$beschreibung', '$owner')", $dbconnection) or die(mysql_error());
tritt bei mir ein Fehler auf!

Es wird kein Eintrag in die Tabelle vorgenommen.
Die Fehlermeldung lautet
Code:
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 ''name',  'alter', 'ort', 'bild', 'qualifikationen/ausbildung', 'beschreibung',  'o' at line 1

Besonders das 'o' verstehe ich nicht.
Soll das wner' dahinter die Fehlerursache sein? ;ugl

Ich hoffe ihr könnt mir helfen.
DANKE!
 
mhh das wäre bei mir nicht der Fehler..
Ich würde es aber so machen:

PHP:
$dbconnection = mysql_connect($dbhost, $dbuser, $dbpass) or die(mysql_error());
mysql_select_db($dbname, $dbconnection) or die(mysql_error());
mysql_query("INSERT INTO table (name, alter, ort, bild, quali, beschreibung, owner)
                VALUES ('$name', '$alter', '$ort', '$bild', '$quali', '$beschreibung', '$owner')") or die(mysql_error()); 
mysql_close(dbconnection);

Also nur die Werte stehen und Klammern, die Felder nicht.

Und was bdt600 gesagt hat stimmmt nicht, zumindest nicht bei mir.
Es kann unrelevant sein, aber die Felder in der MySQL Datenbank ohne Klammern, und die Werte in Klammern.

Es müsste so gehen, wenn nicht sorry ;)
 
Und was bdt600 gesagt hat stimmmt nicht, zumindest nicht bei mir.
Und wie das stimmt!! Tabellennamen gehören zwischen Backticks. Was du da machst, ist zwar erlaubt, aber spätestens wenn du einen Spaltennamen hast, der zu den reservierten Wörtern gehört, hast du ein Problem. Deshalb gleich angewöhnen, die Backticks zu verwenden. htmlphp hat das einfache Hochkomma genommen und das ist definitv falsch!
 
ja sorry, ich wollte dich ja nicht angreifen ;)
Ich hab ja nicht explizit gesagt das du nicht recht hast, ich meinte nur bei mir nicht.

Also nicht angegriffen fühlen ;)

Das ist mir auch bewusst, deshalb habe ich ihm meine 'Lösung' auch angeboten.

Im Endeffekt bleibt dem Programmierer seine 'Programmierart' selbst überlassen, der eine so, der andere so.

Solange es zu keinerlei Komplikationen führt ist das ja auch kein Problem ;)
 
Was für eine Einstellung ist das denn?
Wenn es zu keinen Komplikationen führt? Hier ist das offensichtlich der Fall.

Im Zweifelsfall kann man das SQL-Statemant auch per echo ausgeben und z.B. in phpmyadmin einfügen und so lange korrigieren, bis es klappt. Manche vermeiden Fehler von Anfang an, andere lernen es auf die harte Tour, wie du schon sagts, der eine so, der andere so....
 
Und wie wär's mal mit SQL-Injectionbekämpfung?
Außerdem ist die mysql_-Extension ab PHP5.5 veraltet und wird aber PHP5.6 (oder PHP6) gar nicht mehr existieren. Benutze aus diesem Grund besser mysqli oder PDO.
 
Was für eine Einstellung ist das denn?
Wenn es zu keinen Komplikationen führt? Hier ist das offensichtlich der Fall.

Im Zweifelsfall kann man das SQL-Statemant auch per echo ausgeben und z.B. in phpmyadmin einfügen und so lange korrigieren, bis es klappt. Manche vermeiden Fehler von Anfang an, andere lernen es auf die harte Tour, wie du schon sagts, der eine so, der andere so....

Das war auf die Sache bezogen das es mehrere Möglichkeiten gibt ;)

Stimmt, daran habe ich garnicht gedacht.

Naja ich hoffe ihm (dem Fragesteller) ist nun geholfen ;)
 
Und wie wär's mal mit SQL-Injectionbekämpfung?
Außerdem ist die mysql_-Extension ab PHP5.5 veraltet und wird aber PHP5.6 (oder PHP6) gar nicht mehr existieren. Benutze aus diesem Grund besser mysqli oder PDO.

ich mache mir jetzt kein Urteil über den Fragesteller, aber wenn er ein Anfänger ist reicht die mysql_-Extension erstmal aus!
Eine Frage: Ist das nun wirklich so? Vertraute Quellen?
Ich habe davon auch schon gehört und finde das schon irgentwie 'traurig' :D


Ich glaube das auch deshalb ganz viele nicht mit der neuen PHP Version fahren werden..

Gibt es eigentlich schon sowas wie Release Informationen: Datum, Inhalt usw..?

Würde mich mal interessieren!
 
Nein, reicht es nicht. Warum sollte man als Anfänger nicht direkt mit korrekten und modernen Dingen arbeiten dürfen?

Es ist mittlerweile schon so offiziell, dass es in der Doku steht:
PHP: mysql_query - Manual
This extension is deprecated as of PHP 5.5.0, and will be removed in the future. Instead, the MySQLi or PDO_MySQL extension should be used. See also MySQL: choosing an API guide and related FAQ for more information.

Und das Voting dazu hat es schon vor ein paar Monaten gegeben.

Die hätten das schon mit PHP5.2 rauswerfen sollen, aber damals hatten sie Angst um Abwärtskompatibilität. Mittlerweile geht PHP solche Probleme frontal an. Ab PHP5.5 generiert dessen Benutzung eine Fehlermeldung und bei Fehlermeldungunterdrückung, wird das Script bekanntlich langsamer.
 
Zurück
Oben