php.de

Zurück   php.de > Webentwicklung > PHP-Fortgeschrittene

PHP-Fortgeschrittene Arbeiten mit PHP ohne Einschränkungen

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 02.08.2005, 13:30  
Gast
 
Beiträge: n/a
Standard [Erledigt] Problem MySQL 3 und 4

Hab für meine Module einen eigenen Script Installations routine, die die SQL Anweisungen zeilenweise aus einer Datei ausliest.
Hab aber inzwischen ein Problem festgestellt:

Create Tables sind gegen ende ein klein wenig anders ausgelegt.
gibt es irgendwie ne Möglichkeit MySQL Querys so zu Parsen das Sie überall laufen.
Ich verwende auf meinem Entwicklungsserver MySQL 4.1 (genauso wie auf allen meinen Servern.

Hab allerdings jetzt 2 Kunden die nur MySQL 3.23 Installiert haben.
Ist bei einem WebSpace Provider denn ich nicht kenne.
Verwende zum SQL verarbeiten den phpBB SQL layer.
(kommt durch das phpBB Forum. Einbindung in die User Verwaltung)

Kann es sein das sich zwischen den Versionen nicht nur die Create Table statements sondern auch andere geändert haben?
Ich möcht halt nicht das gesamte Script umschreiben.
(hab viele SQL Inserts direkt aus phpMyAdmin übernommen, da ist das komme UTF...... noch mit drinnen wieso hab ich ned aufgepasst. )

MFG
draco
  Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 02.08.2005, 13:34  
Moderator
 
Benutzerbild von robo47
 
Registriert seit: 03.09.2004
Beiträge: 11.798
PHP-Kenntnisse:
Fortgeschritten
robo47 ist ein wunderbarer Anblickrobo47 ist ein wunderbarer Anblickrobo47 ist ein wunderbarer Anblickrobo47 ist ein wunderbarer Anblickrobo47 ist ein wunderbarer Anblickrobo47 ist ein wunderbarer Anblickrobo47 ist ein wunderbarer Anblickrobo47 ist ein wunderbarer Anblick
Standard

du solltest mindestanfoerderungen haben für deine scripts und ja 3.X und 4.1 unterscheiden sich da stark.
3.23 und 4.0 geht noch, create-befehle sind da imho gleich, aber 4.1 hat ja utf-8 unterstützung und das alles mit drin. aber schau dir mal mysqldumper an, der kann beim dumpen von 4.1-datenbanken, 4.0 bzw 3.x-gültige syntax erzeugen soweit das möglich ist
robo47 ist offline   Mit Zitat antworten
Alt 02.08.2005, 16:14  
Gast
 
Beiträge: n/a
Standard

Das heißt aber für mich, das das gesamte System und alle SQL Querys überarbeitet werden müssen.
Das ganze System besteht inzwische aus 25 Modulen ........

Ein überarbeiten würd zulang dauern.
Das System verwendet ein Datenbank gestütztes Übersetzungssystem mit Query Übersetzungs Caches etc.

Wär extrem viel arbeit.
Dachte eher an eine Möglichkeit die Querys so zu parsen, das sie für alle Versionen (je nach eingesetzter Version) gültig sind.
Beispiel:
innerhalb der Query function der Klasse:


if($sqlVersion==4.1){ $query = parser("4.1",$query); }
elseif{$sqlVersion==4.0} {$query = parser("4.0",$query);}
else{ $query = parser("3.x",$query); }
$this->query = @mysql_query($query, $this->db);


Wär eigentlich mein Denkansatz gewesen.
Ich wollt fragen ob vielleicht jemand einen Solchen Parser schon mal im Konzept oder auch praktisch umgesetzt hat.
  Mit Zitat antworten
Alt 02.08.2005, 16:27  
Moderator
 
Benutzerbild von robo47
 
Registriert seit: 03.09.2004
Beiträge: 11.798
PHP-Kenntnisse:
Fortgeschritten
robo47 ist ein wunderbarer Anblickrobo47 ist ein wunderbarer Anblickrobo47 ist ein wunderbarer Anblickrobo47 ist ein wunderbarer Anblickrobo47 ist ein wunderbarer Anblickrobo47 ist ein wunderbarer Anblickrobo47 ist ein wunderbarer Anblickrobo47 ist ein wunderbarer Anblick
Standard

naja dadurch dass 4.1 viele neuerungen hat, gewisse syntax-dinge möglich sind und alles glaube ich erhlich gesagt nicht, dass sich das in ein script machen lässt, fängt ja schon an mit subselects, da kannste ned einfach ein anderes query draus machen, sondern musst dein system umkrempeln.

dumme anmerkung, aber

entwicklungs-system == produktiv-system

stellt sich oftmals sehr gut dar, wenn ich für nen kunden entwickel, dann frag ich ihn danach, wenn nicht, mach ich die angabe für die lauffähigkeit abhängig von dem worauf ich entwickel.

mfg
robo47
robo47 ist offline   Mit Zitat antworten
Alt 02.08.2005, 16:34  
Gast
 
Beiträge: n/a
Standard

Das Entwicklungssystem steht schon länger (2 Monate oder so).
Was spricht gegen 4.1?
Läuft stabil und schnell.
Viele meiner Kunden haben auf ihrem Webspace eine Version aktueller als 4.0.
Gibt halt noch so manchen Provider dies auf Updates verzichten.
(Soll sogar welche noch mit nur php3 geben)
Das ganze System umzukrempeln wird schwierig und Langwierig
Das CMS ist eigentlich nur das Framework.
Die Module selbst machen das aus, was der Kunde damit anstellen will.
Bekomm die Speks vom Kunden und setzt das ganze dann in den Modulen um.
Es gibt halt ne ganze reihe von Standartmodulen inzwischen, die halt mehrere Kunden einsetzen.
Um eine Kompatibilität zu ermöglichen wollte ich halt net das ganze komplet umschreiben.

Zu was anderem, was sind denn nochmals subselects?
(so weit bin ich mit sql 4 noch nicht gekommen ( )
  Mit Zitat antworten
Alt 02.08.2005, 16:34  
Erfahrener Benutzer
 
Benutzerbild von stefanjann
 
Registriert seit: 02.08.2005
Beiträge: 252
PHP-Kenntnisse:
Fortgeschritten
stefanjann
Standard Version includes

Hallo,

versuch das ganze doch zu lösen in dem du z.B. eine Klasse für jede Version schreibst.

z.B.
PHP-Code:
<?php
// PHP5
class sqlversion3
  
{
  public function 
getdaten() {
  ...
  }
  ...
  }

class 
sqlversion4
  
{
  public function 
getdaten() {
  ...
  }
  ...
  }
?>
Wenn du jetzt die SQL-Version ermittelt hast, dann musst du nur noch folgendes machen:

PHP-Code:
<?php
if ($version==3)
  {
  
$db=new sqlversion3();
  }
  else
    {
    
$db=new sqlversion4();
    }
?>
Gruß,
Stefan Jann
__________________
SELECT * benutze ich nur um den Post kurz zu halten.
stefanjann ist offline   Mit Zitat antworten
Alt 02.08.2005, 16:41  
Moderator
 
Benutzerbild von robo47
 
Registriert seit: 03.09.2004
Beiträge: 11.798
PHP-Kenntnisse:
Fortgeschritten
robo47 ist ein wunderbarer Anblickrobo47 ist ein wunderbarer Anblickrobo47 ist ein wunderbarer Anblickrobo47 ist ein wunderbarer Anblickrobo47 ist ein wunderbarer Anblickrobo47 ist ein wunderbarer Anblickrobo47 ist ein wunderbarer Anblickrobo47 ist ein wunderbarer Anblick
Standard

subselectes sind selectes innerhalb eines selects.

was dagegen spricht ?
du willst was verkaufen, also musst du dir überlegen wie DU ein großes publikum ansprechen kannst entweder indem du dann halt sagst -> du hostest selbst
oder eben mit niedrigen forderungen, ist deine sache und nur weil
4.1 aktuell ist und der ein oder andere (oder auch viele) es schon nutzen ist das nicht gleich der grund es in der entwicklungsumgebung einzusetzen, ich mein ich hohl mir ja auch kein neues auto nur weil mein herrsteller einen neuen herrstellt solange der alte noch seine dienste tut, wenn der neue was was neues kann, was ich will oder brauch dann überleg ich es mir.

mfg
robo47
robo47 ist offline   Mit Zitat antworten
Alt 02.08.2005, 16:42  
Gast
 
Beiträge: n/a
Standard

Der Datenbank layer läuft ja.
Querys werden ausgeführt etc.

Womit ich mehr Probleme hab, ist die Kompatibilität der Querys selbst mit den unterschiedlichen Versionen.
Hauptproblem sind die ganzen utf8 etc. Erweiterungen von mysql4.1 und auch die neuerungen von 4.0

Da ich kein subselects verwende, sollte es recht einfach sein einen parser zu schreiben, der bei mysql 3.x oder so, das ganze nicht unterstützte Zeugs entfernd (gleiche gilt für myslq 4.0)

Mal was anderes, gibt es einen unterschied zwischen TYPE=MyISAM und engine=MyISAM?
Das hat das 3.x auch moniert
  Mit Zitat antworten
Alt 02.08.2005, 16:45  
Moderator
 
Benutzerbild von robo47
 
Registriert seit: 03.09.2004
Beiträge: 11.798
PHP-Kenntnisse:
Fortgeschritten
robo47 ist ein wunderbarer Anblickrobo47 ist ein wunderbarer Anblickrobo47 ist ein wunderbarer Anblickrobo47 ist ein wunderbarer Anblickrobo47 ist ein wunderbarer Anblickrobo47 ist ein wunderbarer Anblickrobo47 ist ein wunderbarer Anblickrobo47 ist ein wunderbarer Anblick
Standard

http://dev.mysql.com/doc/mysql/en/

DAS HANDBUCH da müsste alles drinstehen, gibt bestimmt auch ein chapter migration from X.XX to Y.YY oder so
robo47 ist offline   Mit Zitat antworten
Alt 02.08.2005, 16:45  
Gast
 
Beiträge: n/a
Standard

Naja, aber 4.0 sollte es ja mindestens sein oder?
das 3.x kommt bei mir Beispielsweise wegen diverser Bugs nicht mehr zum einsatz.

Das 4.1 kann ich recht leicht up2date halten durch das OS.
(kein Microsoft).
  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

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
MySQL Problem fkrauthan PHP-Fortgeschrittene 5 25.01.2008 18:18
mysql problem mit LIKE und AND kazuya Datenbanken 10 29.10.2007 21:36
MySQL kodierungs problem Mutatos Datenbanken 0 12.05.2006 20:02
MySQL Problem mit INSERT-Queries Arno Nühm Datenbanken 10 07.04.2006 16:46
Serverumzug - Problem mit MySQL Daten [GE]ReeN Datenbanken 6 28.03.2006 17:02
Mysql / Array Problem marcels PHP Tipps 2006 10 23.03.2006 18:30
[Erledigt] MySQL Server startet nicht mehr richtig... Datenbanken 16 03.03.2006 19:40
[Erledigt] MYSQL Problem Datenbanken 4 09.02.2006 15:14
MySQL &amp;amp; PHP: Problem mit Password() Datenbanken 10 19.09.2005 11:00
[Erledigt] Mysql + PHP und Datum Problem Datenbanken 11 31.08.2005 12:08
MySQL, PHP und ein großes Problem! Datenbanken 2 27.08.2005 10:51
Suche Tipps für Persormance-Steigerung (Geld für Nützliches) Beitragsarchiv 18 16.08.2005 10:57
mysql installations problem Datenbanken 4 16.02.2005 18:46
[Erledigt] Mysql Abfrage Problem! PHP-Fortgeschrittene 5 27.11.2004 10:22
Problem mit 2 gleichzeitigen MySQL abfragen PHP Tipps 2004 2 08.07.2004 13:57

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
mysql 3 auf 4, mysql 3, mysql datenbank von 3 auf 4, kostenloser webspace php 4.1 und sql 4, mysql subselecte

Alle Zeitangaben in WEZ +1. Es ist jetzt 15:08 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.