php-resource



Zurück   PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr > Entwicklung > SQL / Datenbanken
 

Login

 
eingeloggt bleiben
star Jetzt registrieren   star Passwort vergessen
 

 

 


SQL / Datenbanken Probleme mit SQL? Hier könnt ihr eure Fragen zu SQL (MySQL, PostgreSQL, MS-SQL und andere ANSI-SQL Server) los werden.

Antwort
 
LinkBack Themen-Optionen Thema bewerten
  #31 (permalink)  
Alt 29-07-2009, 15:42
h3ll
 Registrierter Benutzer
Links : Onlinestatus : h3ll ist offline
Registriert seit: Mar 2008
Beiträge: 3.578
h3ll befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von tim-gt Beitrag anzeigen
Ich finde den Namen prepare() aber gar nicht so unsinnig, schliesslich wird mit dem Verbindungsaufbau eine Abfrage vorbereitet.
Das wage ich zu bezweifeln. Bitte zeige mir den Teil in prepare(), wo die Verbindung "vorbereitet" wird.

Zitat:
Zitat von tim-gt Beitrag anzeigen
Klar, die Überschneidung mit mysqli:repare() ist da, aber überschrieben wird hier definitiv nichts.
Es ist einfach sehr unglücklich gewählt. Bei "prepare" denkt jeder Programmierer an Prepared Statements, was das hier definitiv nicht ist.

Zitat:
Zitat von tim-gt Beitrag anzeigen
Stellt sich mir jetzt nur noch die Frage, wieso der Autor preg_replace genommen hat.
Das Problem ist eigentlich nicht das preg_replace, sondern dass derjenige, der das geschrieben hat, nicht bedacht hat, dass auch Werte übergeben werden, die aus der Sicht von preg_replace() Zeichen enthalten, die eine bestimmte Bedeutung haben. Man kann es sicher so hinbiegen, dass es richtig funktioniert, aber ich hab ehrlich gesagt keine Lust dazu. Aber wenn du es machen willst, brauchst du dir nur die Doku von preg_replace() anschauen.
Mit Zitat antworten
  #32 (permalink)  
Alt 29-07-2009, 15:43
AmicaNoctis
  Moderatorin
Links : Onlinestatus : AmicaNoctis ist offline
Registriert seit: Jul 2009
Beiträge: 5.709
Blog-Einträge: 9
AmicaNoctis sorgt für eine eindrucksvolle AtmosphäreAmicaNoctis sorgt für eine eindrucksvolle Atmosphäre
Standard

Der Autor hat preg_replace genommen, weil er damit völlig Recht hat, dass ansonsten :10 falsch ersetzt werden würde.
__________________
Hast du die Grundlagen zur Fehlersuche gelesen? Hast du Code-Tags benutzt?
Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
Super, danke!
Mit Zitat antworten
  #33 (permalink)  
Alt 29-07-2009, 15:44
tim-gt
 Registrierter Benutzer
Links : Onlinestatus : tim-gt ist offline
Registriert seit: Jun 2009
Beiträge: 52
tim-gt befindet sich auf einem aufstrebenden Ast
Standard

Nein, ich verwende jetzt str_replace.

PHP-Code:
    public function prepare($sql){                
        
        if(
$this->con === false){

                
$this->connect();
                if(isset(
$sql)) {
                  return new 
DBStmt($this->con$sql);
                } else {
          throw new 
ExcDB('$db->prepare($sql): Es wurde kein Querystring $sql übergeben.');
        }
      } else {
            return new 
DBStmt($this->con$sql);
        }
        
    } 
Hier noch die Methode connect() ebenfalls ein Eigengebräu:

PHP-Code:
    private function connect(){

      
$this->checkClass();
            
$this->checkExtension();
            
            
Error::get()->setHandler('noHandler');                             // reguläre Fehlermeldung unterdrücken
            
$this->con = new mysqli($this->dbhost$this->dbuser$this->dbpw$this->dbname$this->dbport$this->dbsock);
            
Error::get()->restoreHandler();

            if(
mysqli_connect_errno()){                //mysqli::connect_error() ist bis PHP Version 5.2.9 nicht verfgbar 
                
$this->con false;  // Verbindung wieder auf false setzen, wird nmlich auch bei erfolgloser Verbindung zu einem Objekt 
                
throw new ExcDBConnection();
            }
      if(!(
$this->con->set_charset('utf8'))){   // Charset setzen
        
throw new ExcDB('Kann Charset nicht setzen');
      }
    } 

Geändert von tim-gt (29-07-2009 um 15:46 Uhr)
Mit Zitat antworten
  #34 (permalink)  
Alt 29-07-2009, 15:45
tim-gt
 Registrierter Benutzer
Links : Onlinestatus : tim-gt ist offline
Registriert seit: Jun 2009
Beiträge: 52
tim-gt befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von AmicaNoctis Beitrag anzeigen
Der Autor hat preg_replace genommen, weil er damit völlig Recht hat, dass ansonsten :10 falsch ersetzt werden würde.
Sag ich ja auch. Nur hat er dabei nicht alles bedacht, wie h3ll das jetzt gesagt hat. Und ich hab den Fehler gemacht, die Methode unreflektiert zu übernehmen, d.h. ohne mich gross mit preg_replace umherzuschlagen.
Mit Zitat antworten
  #35 (permalink)  
Alt 29-07-2009, 15:49
h3ll
 Registrierter Benutzer
Links : Onlinestatus : h3ll ist offline
Registriert seit: Mar 2008
Beiträge: 3.578
h3ll befindet sich auf einem aufstrebenden Ast
Standard

Ein connect() im prepare() ist Schwachfug. Die Verbindung sollte dann aufgebaut werden, wenn du das Datenbankobjekt anlegst!
Mit Zitat antworten
  #36 (permalink)  
Alt 29-07-2009, 15:54
AmicaNoctis
  Moderatorin
Links : Onlinestatus : AmicaNoctis ist offline
Registriert seit: Jul 2009
Beiträge: 5.709
Blog-Einträge: 9
AmicaNoctis sorgt für eine eindrucksvolle AtmosphäreAmicaNoctis sorgt für eine eindrucksvolle Atmosphäre
Standard

@h3ll: Ich frag mich grad, was du eigentlich meinst, das der Autor nicht bedacht hat? Spezielle Zeichen im Pattern oder in der Ersetzung? Im Pattern kann ich es mir nicht vorstellen, wenn es nur um numerische Platzhalter geht. In der Ersetzung wäre es nicht viel anders als bei str_replace. Kannst du das bitte nochmal aufklären?
__________________
Hast du die Grundlagen zur Fehlersuche gelesen? Hast du Code-Tags benutzt?
Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
Super, danke!
Mit Zitat antworten
  #37 (permalink)  
Alt 29-07-2009, 15:58
h3ll
 Registrierter Benutzer
Links : Onlinestatus : h3ll ist offline
Registriert seit: Mar 2008
Beiträge: 3.578
h3ll befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von AmicaNoctis Beitrag anzeigen
@h3ll: Ich frag mich grad, was du eigentlich meinst, das der Autor nicht bedacht hat? Spezielle Zeichen im Pattern oder in der Ersetzung? Im Pattern kann ich es mir nicht vorstellen, wenn es nur um numerische Platzhalter geht. In der Ersetzung wäre es nicht viel anders als bei str_replace. Kannst du das bitte nochmal aufklären?
Siehe PHP-Manual unter "replacement":

PHP: preg_replace - Manual
Mit Zitat antworten
  #38 (permalink)  
Alt 29-07-2009, 16:07
tim-gt
 Registrierter Benutzer
Links : Onlinestatus : tim-gt ist offline
Registriert seit: Jun 2009
Beiträge: 52
tim-gt befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
To use backslash in replacement, it must be doubled ("\\\\" PHP string).
Das ist wohl gemeint.
Mit Zitat antworten
  #39 (permalink)  
Alt 29-07-2009, 16:09
AmicaNoctis
  Moderatorin
Links : Onlinestatus : AmicaNoctis ist offline
Registriert seit: Jul 2009
Beiträge: 5.709
Blog-Einträge: 9
AmicaNoctis sorgt für eine eindrucksvolle AtmosphäreAmicaNoctis sorgt für eine eindrucksvolle Atmosphäre
Standard

*kopfklatsch* Sorry, ich stand grad auf dem Schlauch. Ich dachte, du meinst im Pattern. Ok, dann würde ich auch str_replace nehmen, aber die Platzhalter vor dem Ersetzen absteigend sortieren, damit größere nicht falsch ersetzt werden.
__________________
Hast du die Grundlagen zur Fehlersuche gelesen? Hast du Code-Tags benutzt?
Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
Super, danke!
Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Verbindung in-power SQL / Datenbanken 2 29-10-2007 06:27
Probleme mit FTP-Verbindung & Upload micronax Netzwerk & Internet 2 04-11-2006 20:56
sicherer wenn magic_quotes_gpc OFF? kendal PHP Developer Forum 2 11-05-2006 16:37
[MySQL 4.1] Verbindung für jede abfrage aufbauen vs. verbindung einmal im script aufbauen flyx SQL / Datenbanken 1 01-12-2005 17:44
Frage zu magic_quotes_gpc MaxPayne PHP Developer Forum 6 19-02-2004 10:38

Themen-Optionen
Thema bewerten
Thema bewerten:

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.

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


PHP News

ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlicht
ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlichtDie bekannte Marktplatzsoftware ebiz-trader ist in der Version 7.5.0 veröffentlicht worden.

28.05.2018 | Berni

Wissensbestand in Unternehmen
Wissensbestand in UnternehmenLebenslanges Lernen und Weiterbilden sichert Wissensbestand in Unternehmen

25.05.2018 | Berni


 

Aktuelle PHP Scripte

PHP Server Monitor

PHP Server Monitor ist ein Skript, das prüft, ob Ihre Websites und Server betriebsbereit sind.

11.09.2018 Berni | Kategorie: PHP/ Security
PHP WEB STATISTIK ansehen PHP WEB STATISTIK

Die PHP Web Statistik bietet Ihnen ein einfach zu konfigurierendes Script zur Aufzeichnung und grafischen und textuellen Auswertung der Besuchern Ihrer Webseite. Folgende zeitlichen Module sind verfügbar: Jahr, Monat, Tag, Wochentag, Stunde Folgende son

28.08.2018 phpwebstat | Kategorie: PHP/ Counter
Affilinator - Affilinet XML Produktlisten Skript

Die Affilinator Affilinet XML Edition ist ein vollautomatisches Skript zum einlesen und darstellen der Affili.net (Partnerprogramm Netzwerk) Produktlisten und Produktdaten. Im Grunde gibt der Webmaster seine Affilinet PartnerID ein und hat dann unmittelb

27.08.2018 freefrank@ | Kategorie: PHP/ Partnerprogramme
 Alle PHP Scripte anzeigen

Alle Zeitangaben in WEZ +2. Es ist jetzt 21:57 Uhr.