php-resource



Zurück   PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr > Entwicklung > PHP Developer Forum
 

Login

 
eingeloggt bleiben
star Jetzt registrieren   star Passwort vergessen
 

 

 


PHP Developer Forum Hier habt ihr die Möglichkeit, eure Skriptprobleme mit anderen Anwendern zu diskutieren. Seid so fair und beantwortet auch Fragen von anderen Anwendern. Dieses Forum ist sowohl für ANFÄNGER als auch für PHP-Profis! Fragen zu Laravel, YII oder anderen PHP-Frameworks.

Antwort
 
LinkBack Themen-Optionen Thema bewerten
  #1 (permalink)  
Alt 10-01-2009, 16:57
Crake
 Registrierter Benutzer
Links : Onlinestatus : Crake ist offline
Registriert seit: Jun 2003
Beiträge: 150
Crake ist zur Zeit noch ein unbeschriebenes Blatt
Standard Probleme mit Installationsscript (Einspielen SQL-Dump)

Mein Installationsscript offenbahrte in der Vergangenheit mir bisher nicht nachvollziehbare Schwächen. Diese Script lädt SQL-Dateien, trennt die einzelnen Anweisungen voneinander ab und führt diese dann nacheinander aus.

PHP-Code:
function install($filename$show=1)
{
  global 
$database$sql_prefix;

  
//Datei einlesen
  
$file implode(""file("sql/" $filename ".sql"));
  
$array split(";\r\n\r\n"$file);
  
  
//Anweisungen ausführen
  
for($i=0$i<count($array); $i++)
  {
    
$sql $array[$i];
    
$sql str_replace("fn1_""fn" $sql_prefix "_"$sql);
    
$query $database->db_query("$sql");
    
    
//Statusmeldung ausgeben (Tabellenname)
    
if($show)
    {
      
$table split("`"$array[$i]);
      echo 
str_replace("fn1_""fn" $sql_prefix "_"$table[1]) . "<br>";
    }
  }

Das Problem ist, dass in letzter Zeit die Trennung der einzelnen Anweisungen gelegentlich Schwierigkeiten bereitet. Bei einigen Nutzern des Scriptes kam es vor, dass die Anweisungen nicht getrennt wurden, was selbstverständlich einen Fehler beim Ausführen von mysql_query() bewirkte.

Amüsant ist, dass sich dieses Problem wohl nicht auf die Serverumgebung zurückführen lässt. Trat das Problem bei einem Nutzer auf, habe ich die Installation von meinem Rechner ausgeführt und wurde mit diesem Problem erstaunlicherweise nicht konfrontiert. Daher vermute ich, dass dies aus der Übertragung der Daten resultiert.

Jetzt suche ich das eigentliche Problem und natürlich eine Möglichkeit, ein derartiges Verhalten des Scriptes künftig zu unterbinden. Da ich das Problem nicht replizieren kann, ist es mir in erster Linie wichtig, Hinweise bezüglich der Problemursache zu erhalten.
__________________
Gesellschaftsforum.net - Projekt zur Wiederbelebung der Diskussionskultur im Internet
1st News - Das Newsletterscript für den professionellen Einsatz
Mit Zitat antworten
  #2 (permalink)  
Alt 10-01-2009, 17:31
Cologne
 Newbie
Links : Onlinestatus : Cologne ist offline
Registriert seit: Jan 2009
Ort: Köln
Beiträge: 28
Cologne ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Vielleicht die Zeilenumbrüche...?

\r für Mac
\n für Unix
\r\n für Windows
Mit Zitat antworten
  #3 (permalink)  
Alt 10-01-2009, 17:31
PHP-Desaster
 PHP Expert
Links : Onlinestatus : PHP-Desaster ist offline
Registriert seit: Mar 2006
Beiträge: 3.105
PHP-Desaster befindet sich auf einem aufstrebenden Ast
Standard

Würde ich auch drauf tippen. split(";\r\n\r\n", $file); ist das Problem.
Mit Zitat antworten
  #4 (permalink)  
Alt 10-01-2009, 17:45
Cologne
 Newbie
Links : Onlinestatus : Cologne ist offline
Registriert seit: Jan 2009
Ort: Köln
Beiträge: 28
Cologne ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Aber mal was anderes...
Ich verstehe nicht ganz, was du da machst.

Du nutzt file(), erhälst damit ein zeilenweises Array zurück, machst das durch implode() wieder zu einem einzelnen, zusammenhängenden String und teilst es dann mit split() doch an den Zeilenumbrüchen wieder in ein Array?

Mal davon abgesehen, das hier explode() wohl sinnvoller wäre, wieso machst du das so umständlich?
Wenn jeder Datensatz in deiner .sql in einer einzelnen Zeile liegt, reicht file() doch vollkommen aus.
Mit Zitat antworten
  #5 (permalink)  
Alt 10-01-2009, 18:11
Crake
 Registrierter Benutzer
Links : Onlinestatus : Crake ist offline
Registriert seit: Jun 2003
Beiträge: 150
Crake ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Zitat:
Original geschrieben von Cologne
Vielleicht die Zeilenumbrüche...?

\r für Mac
\n für Unix
\r\n für Windows
Ist soweit bekannt, nur stammen die Dateien von mir und sind entsprechend bewusst mit Zeilenumbrüchen der Form "\r\n" versehen. Genau deshalb kann ich das Problem nicht eindeutig darauf zurückführen. Das würde das Problem nur erklären, wenn der Entpackvorgang oder der Dateiupload entsprechende Änderungen bedingen würden.

Warum so umständlich - gute Frage. Rührt daher, dass ich die Routine merhmals änderte und ich denke, ich werde bei der Trennung künftig auf tolerantere reguläre Ausdrücke setzen, weshalb es sinnvoll ist, dass mir der gesamte Dateiinhalt in einer Variablen vorliegt.
__________________
Gesellschaftsforum.net - Projekt zur Wiederbelebung der Diskussionskultur im Internet
1st News - Das Newsletterscript für den professionellen Einsatz
Mit Zitat antworten
  #6 (permalink)  
Alt 10-01-2009, 22:49
UzumakiNaruto
 Registrierter Benutzer
Links : Onlinestatus : UzumakiNaruto ist offline
Registriert seit: Nov 2004
Beiträge: 642
UzumakiNaruto befindet sich auf einem aufstrebenden Ast
Standard

bau doch eine debug routine ein und bitte den nutzer diese einmail aufzurufen und dir das ergebnis zuzuschicken .. dann kannst du dir die sql-statements genauer ansehen
__________________
Gruß
Uzu

private Homepage
Mit Zitat antworten
Antwort

Lesezeichen


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

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 20:00 Uhr.