php.de

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

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 31.05.2005, 16:59  
Benutzer
 
Registriert seit: 27.10.2004
Beiträge: 50
micbur
Standard erlaubte Syntax für Blöcke?

Hallo,

ich möchte mir das Leben leichter machen und schreibe mir gerade eine Lib oder Klasse für die Kommunikation mit einer MySQL-DB. Ich finde in der Referrenz leider nichts vergleichbares, daher muss ich leider nachfragen.

Ich würde im Code gerne Folgendes machen:
Code:
$this->_connection_id = mysql_connect($this->_host, $this->_user, $this->_pass) or {
$this->_errno = mysql_errno();
$this->_error = mysql_error();
$this->_connected = FALSE;
return FALSE;
};
Also, ich möchte nach einer Anweisung bei einem Fehler einen ganzen Block ausführen.

Ciao, micbur
micbur ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 31.05.2005, 17:14  
Gast
 
Beiträge: n/a
Standard

Wenn dir so simple Sachen nicht klar sind, solltest du vielleicht erst noch ein wenig Grundlagen lernen, bevor du dich an Klassen wagst.
PHP-Code:
<?
$this
->_connection_id = @mysql_connect($this->_host$this->_user$this->_pass);
if (! 
$this->_connection_id)

  
$this->_errno mysql_errno(); 
  
$this->_error mysql_error(); 
  
$this->_connected FALSE
  return 
FALSE
};
?>
Gruß
phpfan
 
Alt 31.05.2005, 17:47  
Benutzer
 
Registriert seit: 27.10.2004
Beiträge: 50
micbur
Standard

Danke für deine Antwort.
Also naja, mir fehlen einfach PHP-Grundlagen, programmieren kann ich, würde ich von mir behaupten.

Was hältst du denn von der Lösung?
PHP-Code:
<?php
if (!$this->_connection_id mysql_connect($this->_host$this->_user$this->_pass) ) {
    
$this->_errno mysql_errno();
    
$this->_error mysql_error();
    
$this->_connected FALSE;
    return 
FALSE;
}
else {

    if (!
mysql_select_db($this->_dbname)) {
        
$this->_errno mysql_errno();
        
$this->_error mysql_error();
        
mysql_close($this->_connection_id);
        
$this->_connected FALSE;
        return 
FALSE;
    }
    else {
        
// fehlerfrei durchgekommen
        
$this->_connected TRUE;
        return 
TRUE;
    }

}
?>
Ciao, micbur
micbur ist offline  
Alt 31.05.2005, 21:10  
Gast
 
Beiträge: n/a
Standard

Zitat:
Zitat von micbur
Was hältst du denn von der Lösung?
Funktioniert. Return false macht allerdings nur dann Sinn, wenn es NICHT der Constructor ist, weil bei $instanz = new class() der Returnwert des Constructors unter den Tisch fällt.

Die else Blöcke sind nicht erforderlich, wenn im true Block ein return steht.
 
Alt 01.06.2005, 09:39  
Benutzer
 
Registriert seit: 27.10.2004
Beiträge: 50
micbur
Standard

Hallo Meikel,

danke für den Hinweis, aber das ist in jeder OO-Programmiersprache so, dass ein Constructor keinen Rückgabewert hat. Ich habe mir auch schon darüber Gedanken gemacht, ob in PHP(4.3) das genauso funktioniert wie in Java oder Cpp.

Ich habe in der Referenz leider keinen Datentyp BOOL gefunden, ich gehe mal davon aus, dass es ähnlich wie in C so gehandhanbt wird. Allerdings komme ich immer etwas ins Schleuder.

Nehmen wir mal an, eine beliebige Funktion gibt 0 oder NULL zurück, dann wird das als Fehler interpretiert bzw. könnte ein Fehler sein, also false.
Demnach müsste alles ungleich 0 oder NULL eine Referenz sein, also auch true.

Ich habe da so ein dickes PHP Buch, aber ich bin viel zu hektisch von Vorne alles zu lesen. Meist suche ich mir nur das raus, was ich gerade benötige. Momentan stört es mich, dass ich keinen Errorstack habe, den ich mir gerade baue und dass der Datenbankzugriff zwar klasse gelöst ist, aber für mich halt zu umständlich. Ich werde das so lösen, dass ich nur immer Abfragen an meine Klasse stelle und der Verbindungsaufbau und -abbau dann implizit passiert. Dann kann ich auch sowas wie ein close(connection); nicht vergessen.

Ciao, micbur
micbur ist offline  
Alt 01.06.2005, 11:21  
Gast
 
Beiträge: n/a
Standard

Zitat:
Zitat von micbur
Ich habe in der Referenz leider keinen Datentyp BOOL gefunden, ich gehe mal davon aus, dass es ähnlich wie in C so gehandhanbt wird.
C kenne ich leider nicht, da ich "von Pascal her" komme.

http://www.php.net/manual/de/language.types.boolean.php

Zitat:
Nehmen wir mal an, eine beliebige Funktion gibt 0 oder NULL zurück, dann wird das als Fehler interpretiert bzw. könnte ein Fehler sein, also false.
Demnach müsste alles ungleich 0 oder NULL eine Referenz sein, also auch true.
Da schlägt das automatische Typecasting zu. Bisweilen auch mit unerwarteten Ergebnisse.

http://www.php.net/manual/de/languag...comparison.php
http://www.php.net/manual/de/functio...ing-values.php

Zitat:
Ich habe da so ein dickes PHP Buch, aber ich bin viel zu hektisch von Vorne alles zu lesen.
Ohne das dicke Buch zu kennen, möchte ich Dich davor warnen. PHP entwickelt sich viel zu schnell weiter, als das ein Buch mit einer Produktionszeit (Autor -> Druckmaschine) von ca. 9 Monaten das berücksichtigen könnte.

Zitat:
und dass der Datenbankzugriff zwar klasse gelöst ist, aber für mich halt zu umständlich.
DB Klassen sind meines erachtens nach so eminent wichtig, daß das Script sterben sollte, wenn zB. der Connect nicht möglich ist. Betrifft ebenfalls Auth, Session und die Abfrage von register_globals. Letzteres deshalb, damit Du sicher bist, daß der Provider das Flag nicht heimlich eingeschaltet hat und Dich damit in den Wahnsinn treibt. <ggg>

Zitat:
Ich werde das so lösen, dass ich nur immer Abfragen an meine Klasse stelle und der Verbindungsaufbau und -abbau dann implizit passiert. Dann kann ich auch sowas wie ein close(connection); nicht vergessen.
a. die Verbindung wird am Scriptende automatisch geschlossen.
b. von einem automatischen Verbindungsaufbau würde ich abraten (s.o.)

Ich löse das so, daß der Constructor die Verbindung herstellt und die DB selektiert bzw. im Fehlerfalle das Script sterben läßt. Dann ist die Klasse lauffähig, wenn das Script nach dem new noch lebt.
 
 


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
wie müsste die korrekte Syntax sein? dh1sbg Datenbanken 2 06.05.2008 21:45
INSERT....Syntax Fehler OrlandoPolic Datenbanken 16 17.01.2008 23:19
MySQL - Syntax Problem Stefajo PHP Tipps 2006 1 08.10.2006 16:22
syntax Error? dh1sbg Datenbanken 4 04.10.2006 14:32
Syntax Fehler PHP Tipps 2006 9 04.08.2006 18:20
MySQL Update Syntax Error PHP Tipps 2006 2 14.03.2006 18:09
SQL - MYSQL Syntax Datenbanken 15 21.02.2006 13:35
[Erledigt] Hilfe, wobei alles richtig ist(sein sollte) -&gt; Syntax err PHP-Fortgeschrittene 12 21.08.2005 15:18
komm bei der Syntax nicht mehr weiter PHP Tipps 2005-2 3 03.08.2005 18:09
[Erledigt] Falscher Syntax? Datenbanken 2 31.07.2005 23:39
Syntax bei FK Definition? PHP Tipps 2005-2 3 28.07.2005 14:14
[Erledigt] Probleme mit Delete Syntax Datenbanken 6 27.12.2004 12:07
SQL Syntax Fehler, aber wo? Calexico PHP Tipps 2004-2 7 12.11.2004 14:52
[Erledigt] sql - syntax fehler Datenbanken 2 18.10.2004 21:36

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
syntax blöcke, erlaubte syntax in c

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