php.de

Zurück   php.de > php.de Intern > Wiki Diskussionsforum > Tutorials

Tutorials Hier findest Du Tutorials, welche nach und nach ein fertiges Script ergeben. Sehen, lernen & verstehen!

Umfrageergebnis anzeigen: War dieses Tutorial hilfreich?
Ja 8 53,33%
Nein 7 46,67%
Teilnehmer: 15. Du darfst bei dieser Umfrage nicht abstimmen

Antwort
 
LinkBack (1) Themen-Optionen Thema bewerten
Alt 09.05.2006, 23:15  
Erfahrener Benutzer
 
Registriert seit: 21.05.2008
Beiträge: 9.937
Zergling-new wird schon bald berühmt werden
Standard PHP/MySQL: Query wird nicht ausgeführt

Was tun, wenn ein SQL-Query nicht ausgeführt wird?

Es gibt nur drei Möglichkeiten, warum das passieren könnte:

1. das Skript erreicht garnicht erst die Stelle, an der das Query steht

2a. das Query ist fehlerhaft (also syntaktisch falsch)

2b. es besteht noch keine Datenbank-Verbindung und/oder -Auswahl

3. das Query wird ausgeführt, aber du bemerkst es nicht
Zergling-new ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 09.05.2006, 23:15  
Erfahrener Benutzer
 
Registriert seit: 21.05.2008
Beiträge: 9.937
Zergling-new wird schon bald berühmt werden
Standard

1. das Skript erreicht garnicht erst die Stelle, an der das Query steht

Das mag lächerlich klingen, aber es kommt immer wieder vor.
Deshalb direkt vor mysql_query() ein
Code:
$sql = "SELECT * FROM tabelle";
die("ENDE"); // <<<
$res = mysql_query($sql);
setzen und das Skript erneut ausführen. Es sollte jetzt mit einem "ENDE" an dieser Stelle abgebrochen werden. Falls nicht - sicherheitshalber nochmal im Ausgabe-Quelltext des Browsers nachschauen - hat sich das Problem zumindest für dieses Tutorial erledigt, denn das Skript erreicht die Stelle des Queries garnicht erst. :wink:
Zergling-new ist offline   Mit Zitat antworten
Alt 09.05.2006, 23:15  
Erfahrener Benutzer
 
Registriert seit: 21.05.2008
Beiträge: 9.937
Zergling-new wird schon bald berühmt werden
Standard

2a. Das Query ist fehlerhaft.

Ändere deinen aktuellen Code, um in etwa auf diese Form zu kommen:
Code:
$sql = "SELECT spalte1, spalte2 FROM tabelle"; // <<< dein SQL-Code
$res = mysql_query($sql) or die("Error using mysql_query($sql): ".mysql_error());
Es wird versucht das Query normal auszuführen. Wenn dies mißlingt wird das Skript mit einer Meldung abgebrochen.
Die Meldung enthält zwei wichtige Informationen:

Den puren Query den wir an mysql_query() versucht haben zu übergeben. Er enthält offenbar Fehler, die sich oft nicht ohne weiteres aus
dem PHP-Code lesen lassen, der diesen Query-String erstellt

MySQL nennt uns auch den Grund, warum der Query nicht ausgeführt wurde. Der Text allein sollte bereits die meisten Fälle aufklären und hartnäckige Fehler lassen sich über das MySQL Manual lösen [1].

Der häufigste Fehler der dann erscheint ist folgender:
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
Code:
Du hast einen Fehler in deiner SQL Syntax; Überprüfe über dein Handbuch der entsprechenden MySQL Server-Version die richtige anzuwendende Syntax in der Nähe der folgenden Stelle
Tu bitte genau das was dort steht:
Die Syntax an dieser Stelle überprüfen - notfalls mittels HANDBUCH.

Als Beispiel zwei von unzähligen Fehlern, die zu solch einem Syntax-Fehler führen:
du verwendest als Namen reservierte Wörter [3]. Beispiel Nr. 1 ist "ALTER"

Unterscheide zwischen `und ' denn MySQL tut das auch.

- ` wird zum Eingrenzen von Datenbank-, Tabellen- oder Spaltennamen verwendet

- ' oder " wird zum Eingrenzen von nicht-numerischen Werten verwendet

Ein korrektes Beispiel ist:
Code:
UPDATE
    `datenbankA`.`tabelleB`
SET
    `spalteC` = 'wertD',
    `spalteE` = 15
WHERE
    `spalteG` = '2000-01-01'
LIMIT 1
(alternativ dazu können die ` weggelassen werden)
Zergling-new ist offline   Mit Zitat antworten
Alt 09.05.2006, 23:16  
Erfahrener Benutzer
 
Registriert seit: 21.05.2008
Beiträge: 9.937
Zergling-new wird schon bald berühmt werden
Standard

2b. es besteht noch keine Datenbank-Verbindung und/oder -Auswahl

dieser Fall wird bereits durch die in 2a getroffenen Maßnahmen abgedeckt
Zergling-new ist offline   Mit Zitat antworten
Alt 09.05.2006, 23:16  
Erfahrener Benutzer
 
Registriert seit: 21.05.2008
Beiträge: 9.937
Zergling-new wird schon bald berühmt werden
Standard

3. das Query wird ausgeführt, aber du bemerkst es nicht
...weil deine Query-Auswertung fehlerhaft ist.

Beste Möglichkeit dies zu überprüfen ist, sich den Query ausgeben zu
lassen
Code:
echo $sql = "SELECT * FROM tabelle"; // <<< dein SQL-Code
exit;
und diesen dann in phpMyAdmin [2] auszuprobieren. Dort gibt es ein SQL-Eingabefeld. Der pure SQL-Code kann hier eingefügt werden, phpMyAdmin zeigt selbständig die von MySQL gelieferten Treffer (mit einer Ausnahme: es wird falls nicht vorhanden, automatisch ein LIMIT von 0,30 gesetzt). Stehen hier nicht die von dir erwarteten Datensätze musst du deinen SQL-Code oder deine Query-Auswertung anpassen.
Zergling-new ist offline   Mit Zitat antworten
Alt 09.05.2006, 23:16  
Erfahrener Benutzer
 
Registriert seit: 21.05.2008
Beiträge: 9.937
Zergling-new wird schon bald berühmt werden
Standard

Anhang (Linkliste)

[1] http://dev.mysql.com/doc/index.html (eigene MySQL-Version beachten!)
[2] http://www.phpmyadmin.net/
[3] http://dev.mysql.com/doc/refman/4.0/...ved-words.html
Zergling-new ist offline   Mit Zitat antworten
Antwort


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

LinkBacks (?)
LinkBack to this Thread: http://www.php.de/tutorials/39815-php-mysql-query-wird-nicht-ausgefuehrt.html
Erstellt von For Type Datum
TP: [PHP] Beim Absenden E-mail an Form-user. - Seite 2 - TP Hilfe Forum -- Anleitung - Tutorial - Workshop... This thread Refback 03.10.2008 05:14

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Query abbrechen nicon_26 Datenbanken 1 13.02.2008 11:34
NS Query Problem GSJLink Datenbanken 0 07.09.2007 18:04
Variablen in Query automatisch escapen Maho88 PHP Tipps 2007 10 31.07.2007 08:42
Probleme mit einer query tinchen Datenbanken 20 30.05.2006 19:39
Mehr als ein Feld mit Distinct in einem Query auslesen ?? Bouni PHP-Fortgeschrittene 9 19.12.2005 12:43
query r�cksetzen? Promaetheus PHP Tipps 2007 15 01.12.2005 13:53
[Erledigt] Hartnäckiges SQL Query... Datenbanken 1 05.10.2005 18:23
Query, was aus einer Tabelle mehrere Summen rausholt Datenbanken 3 14.09.2005 16:45
Geht das mit nur einem Query? Bouni Datenbanken 3 14.09.2005 09:08
mysql query fehler Datenbanken 6 19.01.2005 23:44
MySQL-Ergenis auswerten mit Fehler: '1065 Query was empty' PHP Tipps 2004 3 17.10.2004 01:41
select query durch if anweisungen splitten Datenbanken 6 06.09.2004 13:46
immer mysql_select_db vor query wenn man pconnect benutzt robo47 PHP Tipps 2004 8 03.09.2004 14:56
mysql Fehler - query was empty Anuschka Datenbanken 2 01.09.2004 00:28
[Erledigt] Query läuft nicht Datenbanken 6 13.08.2004 21:13

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
mysql_query wird nicht ausgeführt, php mysql query, php mysql query ausführen, php mysql_query ausgeben, php query ausgeben, mysql query ausführen php, mysql query php, php query, mysql query wird nicht ausgeführt, query ausgeben, mysql query ausgeben, query ausgeben lassen, query php, sql query wird nicht ausgeführt, php mysql_query wird nicht ausgeführt, php mysql query ausgeben, sql query ausgeben, query wird nicht ausgeführt, php mysql query wird nicht ausgeführt, mysql query

Alle Zeitangaben in WEZ +2. Es ist jetzt 02:16 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.