php-resource



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

Login

 
eingeloggt bleiben || php-forumjetzt anmelden
 

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

Warum Texterstellung mit künstlicher Intelligenz richtig gut ist
Warum Texterstellung mit künstlicher Intelligenz richtig gut istKünstliche Intelligenz ist dabei, die Welt zu erobern. Die größten Unternehmen entwickeln Systeme, die einen Text für Sie schreiben können. Und sie machen das sehr gut.

05.01.2022 | Berni

Vorteile eines flexiblen ERP Systems
Vorteile eines flexiblen ERP SystemsEin flexibles ERP System bietet in allen Unternehmensbereichen die Grundlage für eine erfolgreiche Verwaltung, Organisation und Planung aller Prozesse.

01.12.2021 | Berni


 

Aktuelle PHP Scripte

Homepagetools 2022

Kostenloses Gästebuch und Homepagetools für die eigene Homepage. Bei GuxDu kann man sich kostenlos die Websitetools auf die vorhandene Website einbauen. Zudem kann man bei GuxDU auch eine eigene Homepage mit 3D Effekten erstellen. GuxDu ist kostenlos.

29.04.2022 freepler | Kategorie: PHP/ Gaestebuch
SF-Shopsystem V1.0

Hier haben wir ein einzigartiges Shopsystem in PHP. Die Anzahl der Artikel ist unbegrenzt, einfach zu bedienen und erklärt sich. Ausführliche Beschreibung weiter unten.

28.04.2022 Speedcrawler | Kategorie: PHP/ Shops
Anzeigen Markt mit PayPal Bezahl System

Anzeigen Markt Script mit PayPal Bezahl System Der Benutzer hat die Möglichkeit sofort nach Bezahlung mit PayPal seine Anzeigen zu schalten, je nach seinem Guthaben.

27.04.2022 Webace_de | Kategorie: PHP/ Anzeigenmarkt
 Alle PHP Scripte anzeigen

Alle Zeitangaben in WEZ +2. Es ist jetzt 23:30 Uhr.