CronJob-Service
bei SELFPHP mit ...
|
+ minütlichen Aufrufen
+ eigenem Crontab Eintrag
+ unbegrenzten CronJobs
+ Statistiken
+ Beispielaufrufen
+ Control-Bereich
Führen Sie mit den CronJobs von
SELFPHP zeitgesteuert Programme
auf Ihrem Server
aus. Weitere Infos
|
:: Anbieterverzeichnis ::
Globale Branchen
Informieren Sie sich über ausgewählte Unternehmen im Anbieterverzeichnis von SELFPHP
:: Newsletter ::
Abonnieren Sie hier den kostenlosen
SELFPHP Newsletter!
|
PHP Grundlagen Hier kann über grundlegende Probleme oder Anfängerschwierigkeiten diskutiert werden |
31.05.2010, 19:27:58
|
Anfänger
|
|
Registriert seit: May 2010
Alter: 44
Beiträge: 67
|
|
SQL-Syntax-Fehler, MySQL Version
Hallo,
ich möchte zuerst danken an alle Autoren des Forums. Das hier ist wirklich eine tolle Seite.
Seit zwei Monaten beschäftige ich mich mit PHP und brauche sooooo sehr Hilfe.
Erst eben gerada habe ich mich registriert und hoffe, dass ich mit eurer Hilfe meine Böse Fehler endlich mal korrigieren kann.
Ich habe am meisten Probleme mit der SQL-Syntax (außer meine Deutsch-Fehlern, meine ich).
Das seltsame ist, dass z.B. eine SQL-Abfrage bei mir ein oder mal funktioniert und dann nicht mehr.
Oder in einem Skript geht es super aber in einem anderen bekomme ich ständig Fehlermeldungen, die wie folgt anfangen:
" 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 ...."
Ich benutze XAMMP mit den folgenden komponent-Versionen:
Apache/ 2.2.14, PHP/ 5.3.1 und MySQL/5.1.41 , PHP Erweiterung: Mysqli
Ich glaube, solche Fehler passiert bei mir wegen diesen Hochkommata oder doppelte Anführungszeichen. Allein wegen diesem Problem fühle ich mich langsam frustriert.
Hier z.B. habe ich eine abfrage_aufbauen() Funktion, welche ich von einem sehr guten Buch (PHP von Kopf bis Fuß) anzuwenden versuche:
PHP-Code:
public static function abfrage_aufbauen($sortierung){
//teilnehmer JOIN (teilnehmer_job JOIN institut)
$jointeil = "ak_teilnehmer AS t\n" .
"LEFT JOIN (\n" .
"ak_teilnehmer_job AS tj\n" .
"INNER JOIN ak_institut AS i ON tj.tj_institut = i.i_id\n" .
")\n" .
"ON t.t_id = tj.tj_teilnehmer\n";
$list_sql = "SELECT t_titel, t_vname, t_nname, t_beruf, i_name, t_email\n FROM" . $jointeil;
/*Die Ergebnisse sortieren.
* Diese switch_Anwiesung prüft den Wert von $sortierung und
* hängt ans Ende der Abfrage die entsprechende ORDER BY-Klausel an.
*/
switch ($sortierung) {
//aufsteigend über Nachname
case 1:
$list_sql .= " ORDER BY t_nname";
break;
//absteigend über Nachname
case 2:
$list_sql .= " ORDER BY t_nname DESC";
break;
// aufsteigend über den Beruf
case 3:
$list_sql .= " ORDER BY t_beruf";
break;
// absteigend über den Beruf
case 4:
$list_sql .= " ORDER BY t_beruf DESC";
break;
// aufsteigend über das Institut
case 5:
$list_sql .= " ORDER BY i_name";
break;
// absteigend über das Institut
case 6:
$list_sql .= " ORDER BY i_name DESC";
break;
default:
// Keine Sortierung vorgegeben, nicht sortieren.
}
return $list_sql; // damit der Code, der die Funktion aufgerufen hat, sie verwenden kann.
}
Und die Fehlermeldung sieht so aus:
" 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 'AS t LEFT JOIN ( ak_teilnehmer_job AS tj INNER JOIN ak_institut AS i ON tj.tj_in' at line 2"
Ich wäre sehr dankbar, wenn mir jemand mein Fehler zeigen würde...
|
31.05.2010, 20:25:49
|
Junior Member
|
|
Registriert seit: May 2003
Ort: Trier
Alter: 47
Beiträge: 310
|
|
AW: SQL-Syntax-Fehler, MySQL Version
Mir erschließt sich der Sinn der Zeilenumbruchs-"Steuerzeichen" \n nicht die Du in das Statement mit reinschreibst.
Ansonsten sieht das Statement meiner Meinung nach, nach dem ersten "überfliegen", in Ordnung aus. Ich kann mich aber auch Irren.
Kai aka Knight1
|
01.06.2010, 09:16:43
|
SELFPHP Profi
|
|
Registriert seit: Apr 2008
Alter: 48
Beiträge: 1.938
|
|
AW: SQL-Syntax-Fehler, MySQL Version
Zitat:
Zitat von Leyyin
Ich habe am meisten Probleme mit der SQL-Syntax (außer meine Deutsch-Fehlern, meine ich).
|
es gibt nicht auszusetzen .-
Zitat:
Zitat von Leyyin
Ich wäre sehr dankbar, wenn mir jemand mein Fehler zeigen würde...
|
wie zuvor angesprochen, kann ich - abgesehen von den steuerzeichen - keine syntaktischen fehler in deinem sql-statement erkennen. ehrlich gesagt wundert's mich, dass die anweisung überhaupt funtioniert:
Zitat:
Zitat von Leyyin
Das seltsame ist, dass z.B. eine SQL-Abfrage bei mir ein oder mal funktioniert und dann nicht mehr.
|
weitere anmerkungen:
1. warum konkatenierst du die einzelnen bestandteile des sql-statements? das ist unnötig und könnte bspw. so (besser) aussehen:
PHP-Code:
$jointeil =
"
ak_teilnehmer AS t
LEFT JOIN (
ak_teilnehmer_job AS tj
INNER JOIN ak_institut AS i ON tj.tj_institut = i.i_id
)
ON t.t_id = tj.tj_teilnehmer
";
2. programmiere vorzugsweise in englisch; vor allem bei grösseren / umfangreichen vorhaben.
cx
|
02.06.2010, 10:52:38
|
Anfänger
|
|
Registriert seit: May 2010
Alter: 44
Beiträge: 67
|
|
AW: SQL-Syntax-Fehler, MySQL Version
Zitat:
Zitat von knight1
Mir erschließt sich der Sinn der Zeilenumbruchs-"Steuerzeichen" \n nicht die Du in das Statement mit reinschreibst.
Ansonsten sieht das Statement meiner Meinung nach, nach dem ersten "überfliegen", in Ordnung aus. Ich kann mich aber auch Irren.
|
Danke Knight1,
die Steuerzeichen haben mich auch gestört aber das hat seinen Grund. So ist es passiert: Zuerst hat meine Anfrage nicht funktioniert. Dann habe ich es bei phpMyAdmin rumprobiert , am ende hinbekommen. Die funktionierende Anfrage habe ich in php-Code umgewandelt und diese in meinem Code kopiert. Steuerzeichen sind deswegen enthalten. :) Ich kann sie aber gerne entfernen :) Ist kein Problem.
|
02.06.2010, 11:00:53
|
Anfänger
|
|
Registriert seit: May 2010
Alter: 44
Beiträge: 67
|
|
AW: SQL-Syntax-Fehler, MySQL Version
Zitat:
Zitat von cortex
ehrlich gesagt wundert's mich, dass die anweisung überhaupt funtioniert
|
Sieht es soo schlimm aus?
Zitat:
Zitat von cortex
warum konkatenierst du die einzelnen bestandteile des sql-statements?
|
Na ja... Ich habe alles, was ich gelernt habe -vom 0 angefangen- von dem zuvor erwähnten Buch (PHP & MySQL vom Kopf bis Fuß) gelernt und dort stehen die Anfragen nur in diesen Schreibweise. Eigentlich die Art und Weise wie du empfehlt hast kommt mir leichter vor. Ich mache es in der Zukunft so. :) Herzlichen Dank für die Empfehlung.
Zitat:
Zitat von cortex
programmiere vorzugsweise in englisch; vor allem bei grösseren / umfangreichen vorhaben.
|
Jetz schäme ich mich es zuzugeben: Ich kann leider kein Englisch...
|
02.06.2010, 11:10:11
|
SELFPHP Profi
|
|
Registriert seit: Apr 2008
Alter: 48
Beiträge: 1.938
|
|
AW: SQL-Syntax-Fehler, MySQL Version
Zitat:
Zitat von Leyyin
Sieht es soo schlimm aus?
|
ja, denn steuerzeichen haben - wie bereits angedeutet - nichts in einem sql-statement zu suchen.
Zitat:
Zitat von Leyyin
[...] dort stehen die Anfragen nur in diesen Schreibweise.
|
ohne den autoren des buches zu nahe zu treten (und ohne die quelle selbst zu prüfen).... diese schreibweise ist schwachsinnig:
- kein sichtbarer mehrwert
- überflüssige notationen (double quotes und stringverknüpfung)
- daher anfälliger für fehler
schau bitte in unsere forenregeln unter punkt d - da sind sehr gute tutorials verlinkt.
Zitat:
Zitat von Leyyin
Jetz schäme ich mich es zuzugeben [...]
|
die nächste baustelle .-)
cx
|
02.06.2010, 13:19:54
|
Anfänger
|
|
Registriert seit: May 2010
Alter: 44
Beiträge: 67
|
|
AW: SQL-Syntax-Fehler, MySQL Version
Hurraa! Diese Fehlermeldung habe ich nicht mehr! :) Ich danke euch.
Zitat:
Zitat von cortex
(...) diese schreibweise ist schwachsinnig (...)
|
Denke ich auch. ok... ich lasse sie ab jetzt fallen. Keine Stuerzeichen mehr in SQL-statement! Aber ich liebe mein Buch immer noch ;)
Zitat:
Zitat von cortex
schau bitte in unsere forenregeln unter punkt d - da sind sehr gute tutorials verlinkt.
|
Gerne... Im ersten Gelegenheit...
Gut... aber jetzt habe ich eine andere Fehlermeldung, die ich wieder nicht beseitigen kann.
Und zwar so:
[mod: verschoben, neue Frage neuer Thread]
|
06.06.2010, 13:01:57
|
Anfänger
|
|
Registriert seit: May 2010
Alter: 44
Beiträge: 67
|
|
AW: SQL-Syntax-Fehler, MySQL Version
Ich habe wieder die selbe Fehlermeldung :(
" Etwas stimmte mit dem Query nicht: 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 '@googlemail.com' at line 8"
Der Fehler liegt irgendwie an Mail-Adresse, vielleicht beim Where Klausel aber verstehe ich nicht, was es ist.
Außerdem ist die Zeilenangabe (8) stimmt nicht. Diese Code steht zwischen den Zeilen 138-173. Wiese steht hier (... at line 8)?
Sorry, wenn ich immer mit den selben Kleinigkeiten euch beschäftige. Ich komme aber nicht voran bevor ich diesen überwinde.
Danke schon jetzt.
PHP-Code:
public function doUpdate(array $param) { //teilnehmer JOIN (teilnehmer_job JOIN institut) $jointeil = " ak_teilnehmer AS t LEFT JOIN ( ak_teilnehmer_job AS tj INNER JOIN ak_institut AS i ON tj.tj_institut = i.i_id ) ON t.t_id = tj.tj_teilnehmer "; $sql_update = "UPDATE " . $jointeil . " SET t.t_titel = '".$param['titel']."', t.t_vname = '".$param['vorname']."', t.t_nname = '".$param['nachname']."', " . "t.t_geb_datum = '".$param['geburtsdatum']."', t.t_beruf = '".$param['beruf']."', t.t_str = '".$param['str']."', " . "t.t_hnr = '".$param['hausnr']."', t.t_plz = '".$param['plz']."', t.t_tel = '".$param['tel']."', " . "t.t_mobil = '".$param['mobil']."', t.t_email = '".$param['email']."', " . "tj.tj_position = '".$param['position']."', tj.tj_abteilung = '".$param['abteilung']."', " . "tj.tj_str = '".$param['institutstr']."', tj.tj_hnr = '".$param['instituthnr']."', " . "tj.tj_plz = '".$param['institutplz']."', tj.tj_tel = '".$param['instituttel']."', " . "i.i_name = '".$param['institutname']."' " . "WHERE t.t_email = ".$param['email'];
$update = self::$db->query($sql_update) or die('Etwas stimmte mit dem Query nicht: '.self::$db -> error);
|
06.06.2010, 13:09:47
|
Junior Member
|
|
Registriert seit: May 2003
Ort: Trier
Alter: 47
Beiträge: 310
|
|
AW: SQL-Syntax-Fehler, MySQL Version
Geändert von cortex (07.06.2010 um 10:33:30 Uhr)
Grund: überflüssige zitierung
|
06.06.2010, 14:31:36
|
Anfänger
|
|
Registriert seit: May 2010
Alter: 44
Beiträge: 67
|
|
AW: SQL-Syntax-Fehler, MySQL Version
Zitat:
Zitat von knight1
|
Hmm... Wenn ich mich nicht irre, heißt das, dass ich nun eine Recherce-Aufgabe habe :)
Na gut... :)
Danke für den Tipp.
Dann bis bald ;)
|
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
|
|
Forumregeln
|
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.
HTML-Code ist aus.
|
|
|
Alle Zeitangaben in WEZ +2. Es ist jetzt 13:30:45 Uhr.
|