php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2005

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 18.01.2005, 08:36  
Erfahrener Benutzer
 
Registriert seit: 06.09.2003
Beiträge: 309
suter
Standard Abfrage Problem

Eine Abfrage liefert immer false, ich benutze für die Abfrage die phpbb MySQL - Klasse.
PHP-Code:
    function sql_query($query ""$transaction FALSE)
    {
        
// Remove any pre-existing queries
        
unset($this->query_result);
        if(
$query != "")
        {
            
$this->num_queries++;

            
$this->query_result = @mysql_query($query$this->db_connect_id);
        }
        if(
$this->query_result)
        {
            unset(
$this->row[$this->query_result]);
            unset(
$this->rowset[$this->query_result]);
            return 
$this->query_result;
        }
        else
        {
            return ( 
$transaction == END_TRANSACTION ) ? true false;
        }
    } 
Hier die Abfrage:
PHP-Code:
        //Benötigte Variable für Query
        
$kb_id $this->gvars['kb_id'];
        
        
//Comments mittels ID Abfragen
        
$sql "Select comment_id, kb_id, nickname, date, comment From comments Where kb_id = '$kb_id' Order by comment_id desc";
        
        if(!
$result $this->db->sql_query($sql))
        {
            
print_r($this->db->sql_error());
            
//print_r($this->db);
            
error_message($message$mysql true$title 'Fehler');
        } 
Es gibt immer False zurück aber keine Fehlermeldung, MySQL selbst meldet auch keinen Fehler auch wenn ich mit or die(mysql_error()) probiere, es sagt zwar Fehler aber nicht welchen. Keine Fehlernummer, keine Fehlermeldung.
suter ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 18.01.2005, 10:24  
Erfahrener Benutzer
 
Registriert seit: 08.11.2004
Beiträge: 2.079
Der_Gerhard ist zur Zeit noch ein unbeschriebenes Blatt
Der_Gerhard eine Nachricht über ICQ schicken
Standard

Vielleicht wäre MySQL etwas gesprächiger, wenn Du das @ vor mysql_query mal weglässt.
__________________
**********************************
Nein, ich bin nicht die Signatur.
Ich putze hier nur.
**********************************
Der_Gerhard ist offline  
Alt 18.01.2005, 10:51  
Erfahrener Benutzer
 
Registriert seit: 21.12.2004
Beiträge: 5.235
PHP-Kenntnisse:
Fortgeschritten
mepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblick
mepeisen eine Nachricht über ICQ schicken mepeisen eine Nachricht über Skype™ schicken
Standard

oder wenn du an den richtigen Stellen auf Fehler prüfst.
mepeisen ist offline  
Alt 18.01.2005, 11:44  
Erfahrener Benutzer
 
Registriert seit: 06.09.2003
Beiträge: 309
suter
Standard

@Der_Gerhard
Hab ich schonmal probiert, MySQL sagt Fehler gibt aber keinen aus. Also keine Fehlernummer und keine Beschreibung.

@mepeisen
Ich finde ihn wirklich nicht. Ich habe die Klasse nochmal in einem anderen Skript angewendet mit Erfolg. Ich scheine einen dummen Fehler drin zu haben, der so einfach / schwer ist, dass ich ihn nicht sehe
suter ist offline  
Alt 18.01.2005, 11:48  
Erfahrener Benutzer
 
Registriert seit: 21.12.2004
Beiträge: 5.235
PHP-Kenntnisse:
Fortgeschritten
mepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblick
mepeisen eine Nachricht über ICQ schicken mepeisen eine Nachricht über Skype™ schicken
Standard

Der Spaltenname "date" ist unzulässig, weil er einer der reservierten Wörter SQL-Wörter ist und eigentlich einen Datentyp beschreibt.

Prinzipiell solltest du deine Fehlerprüfung in jedem Fall einbauen bei Aufrufen von mysql_connec(), mysql_select_db() und mysql_query()...
__________________
www.php-maven.org PHP und Maven vereint: Build/Deploy/Produktion/Konfiguration, Projekt Management, CI, PHPUnit, zahlreiche Frameworks
Twitter @ https://twitter.com/#!/mepeisen und Facebook @ http://t.co/DZnKSUih
mepeisen ist offline  
Alt 18.01.2005, 12:16  
Erfahrener Benutzer
 
Registriert seit: 18.09.2003
Beiträge: 13.598
PHP-Kenntnisse:
Fortgeschritten
imported_Ben ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Zitat:
Zitat von mepeisen
Der Spaltenname "date" ist unzulässig, weil er einer der reservierten Wörter SQL-Wörter ist und eigentlich einen Datentyp beschreibt.
das ist teilweise richtig:
http://dev.mysql.com/doc/mysql/de/Reserved_words.html

'DATE' steht auf der liste der ausnahmen:
Zitat:
Folgende Symbole (aus der obigen Tabelle) sind von ANSI-SQL verboten, aber von MySQL als Spalten- und Tabellennamen zugelassen. Der Grund ist, dass einige davon sehr natürliche Namen sind und viele Leute diese bereits in Benutzung haben.

ACTION
BIT
DATE
ENUM
NO
TEXT
TIME
TIMESTAMP
allerdings sollte man so etwas trotzdem vermeiden. aus gründen der übersichtlichkeit und weil ich persönlich hoffe, dass diese ausnahmen irgendwann mal wegfallen.

grüße ben.
imported_Ben ist offline  
Alt 18.01.2005, 13:06  
Erfahrener Benutzer
 
Registriert seit: 21.12.2004
Beiträge: 5.235
PHP-Kenntnisse:
Fortgeschritten
mepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblick
mepeisen eine Nachricht über ICQ schicken mepeisen eine Nachricht über Skype™ schicken
Standard

Und da ich mich eher an Ansi-SQL halte, alleine weil ich mit mehreren SQL-Servern zu tun habe, ist meine Aussage schon berechtigt

Aber wie gesagt: Der erste Schritt ist, an den richtigen Stellen eine Fehlerprüfung einzubauen und dann den genauen Wortlaut des SQLs samt der Fehlermeldung anzuschauen. Die richtige Fehlerprüfung hilft dann auch gleichzeitig für die Zukunft.

Wenn du dann noch nicht schlau wirst, kannst du ja nochmal mit dem genauen SQL - Ausgabe per echo $sql; - und dem genauen Wortlaut der Fehlermeldung noch einmal hier melden.
Der SQL selber sieht bis auf das DATE auf den ersten Blick gar nicht so schlecht aus, daher ist alles hier etwas Rätselraten ohne genaue Infos.
__________________
www.php-maven.org PHP und Maven vereint: Build/Deploy/Produktion/Konfiguration, Projekt Management, CI, PHPUnit, zahlreiche Frameworks
Twitter @ https://twitter.com/#!/mepeisen und Facebook @ http://t.co/DZnKSUih
mepeisen ist offline  
Alt 18.01.2005, 13:18  
Erfahrener Benutzer
 
Registriert seit: 06.09.2003
Beiträge: 309
suter
Standard

Also ich habe mal date durch datum ersetzt.
Wegen der Fehlerausschaltung ist es eben so, dass ich an dem Projekt mitarbeite und wie oben schon beschrieben, benutzen wir die mysql.php von dem phpbb Forum.
Ich habe jetzt Mal kurz eine Änderung vorgenommen und das reingeschrieben:
PHP-Code:
$this->query_result mysql_query($query$this->db_connect_id) or die(mysql_error()); 
Also abgebrochen wird das ganze, der mysql_error() ist "". Ich verstehe wirklich nicht woran es noch liegen könnte. Zudem ich sonst keine Probleme mit der Klasse hatte.
Wenn ich den SQL Befehl selber reinschreibe, also ohne Klasse sondern selber mysql_query und so reinschreibe funktioniert es.
suter ist offline  
Alt 18.01.2005, 13:18  
Erfahrener Benutzer
 
Registriert seit: 18.09.2003
Beiträge: 13.598
PHP-Kenntnisse:
Fortgeschritten
imported_Ben ist zur Zeit noch ein unbeschriebenes Blatt
Standard

ich nutze seit neustem so etwas hier als spaltenname:
_id, _date, etc.

so kann man das dann auch alles wunderbar verwenden. jedenfalls bei MySQL
imported_Ben ist offline  
Alt 18.01.2005, 13:23  
Gast
 
Beiträge: n/a
Standard

Zitat:
Zitat von Ben
'DATE' steht auf der liste der ausnahmen:
comment ist auch ein reservierter Bezeichner.
 
 


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

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
[Erledigt] MySql Frage: Problem mit einer etwas lomplexeren Abfrage tomtaz Datenbanken 5 24.06.2008 22:36
Abfrage Problem mastermix Datenbanken 2 06.08.2007 11:45
[Erledigt] Problem mit Abfrage Datenbanken 0 20.10.2005 17:02
[MySQL] Problem mit einer verschachtelten Abfrage aktionkuba Datenbanken 7 06.04.2005 14:07
Problem mit abfrage. PHP Tipps 2005 13 30.03.2005 18:00
Problem mit abfrage und co PHP Tipps 2005 6 29.03.2005 16:38
Problem bei benutzername und passwort abfrage ? PHP Tipps 2005 4 15.03.2005 17:29
Abfrage Problem (vermute ich) PHP Tipps 2004-2 3 14.12.2004 22:21
[Erledigt] Abfrage LIMIT Problem Datenbanken 9 08.12.2004 19:05
Problem mit abfrage Datenbanken 8 05.12.2004 12:46
Problem mit einer SQL Abfrage picco PHP Tipps 2004-2 3 01.12.2004 22:32
[Erledigt] Mysql Abfrage Problem! PHP-Fortgeschrittene 5 27.11.2004 10:22
[Erledigt] problem mit sql abfrage PHP Tipps 2004-2 6 13.11.2004 19:41
Problem mit SQL Abfrage Schiedsrichter Datenbanken 2 02.08.2004 07:52
Abfrage Problem (addition nicht mehr möglich?) Datenbanken 2 30.07.2004 15:02

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
function sql_query($query = \\, $transaction =, function sql_query($query = \\, $transaction = false) {

Alle Zeitangaben in WEZ +2. Es ist jetzt 10:05 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.