SELFPHP: Version 5.8.2 Befehlsreferenz - Tutorial – Kochbuch – Forum für PHP Einsteiger und professionelle Entwickler

SELFPHP


Professional CronJob-Service

Suche



CronJob-Service    
bei SELFPHP mit ...



 + minütlichen Aufrufen
 + eigenem Crontab Eintrag
 + unbegrenzten CronJobs
 + Statistiken
 + Beispielaufrufen
 + Control-Bereich

Führen Sie mit den CronJobs von SELFPHP zeitgesteuert Programme auf Ihrem Server aus. Weitere Infos



:: Buchempfehlung ::

Websites optimieren für Google & Co.

Websites optimieren für Google & Co. zur Buchempfehlung
 

:: Anbieterverzeichnis ::

Globale Branchen

Informieren Sie sich über ausgewählte Unternehmen im Anbieterverzeichnis von SELFPHP  

 

:: Newsletter ::

Abonnieren Sie hier den kostenlosen SELFPHP Newsletter!

Vorname: 
Name:
E-Mail:
 
 

Zurück   PHP Forum > SELFPHP > PHP für Fortgeschrittene und Experten
Hilfe Community Kalender Heutige Beiträge Suchen

PHP für Fortgeschrittene und Experten Fortgeschrittene und Experten können hier über ihre Probleme und Bedenken talken

Antwort
 
Themen-Optionen Ansicht
  #1  
Alt 07.06.2004, 16:11:39
Benutzerbild von RDJ
RDJ RDJ ist offline
Junior Member
 
Registriert seit: Oct 2002
Ort: 49° 48' N 9° 56' O
Beiträge: 169
MSSQL & PHP -> nvarchar (Lösung) oder ... wie bekomme ich alle zeichen aus nem Feld

Hallo Leute,

ich möchte hier eine "kleine" Lösung des Problems vorstellen.
Grund für dieses Posting war wie immer google :-) (such such nix gscheides find)

Also, wenn ihr eine MSSQL Datenbank euer eigen nennen dürft und mit PHP arbeitet, werdet Ihr früher oder später auch auf dieses Problem stoßen.

Problem : Eine Tabelle enthält ein Feld nvarchar mit einer Länge > 255 Zeichen...

F1 : Warum nvarchar und nicht varchar ?
A1 : Weil nvarchar Unicode unterstützt und varchar nicht

F2 : Warum dann nicht ntext ?
A2 : Habt ihr schon mal probiert (mit einer mssql (kein ODBC)) ntext über PHP auszugeben ? Wenns klappt, bitte schreibt mir wie ihr es angestellt habt :-)


Wie löst man nun so ein Problem ?

Nehmen wir ein Beispiel :

Tabelle : MYTABLE [ID][NAME] , wobei NAME = nvarchar ist ( Length sagen wir mal 1024)

Als DB Schnittstelle verwende ich AdoDB

Falls Ihr Fragen zu AdoDb und Connect habt... schön Googlen ! :-)


najut

Die Variable $conn ist die connection zur DB

Überlegung :

F1 : Wie könnte man nun trotzdem komplettes ergebniss aus der DB rauskitzeln ?

A1 : Ich habe es mal mit substring versucht


Erklärung :


Als erstes lesen wir die Länge des jeweiligen Strings raus.

PHP-Code:
$sqlQuery "SELECT LEN(NAME) AS STRLEN FROM MYTABLE WHERE ID = 1"

if((
$recordSet $conn->Execute($sqlQuery)) === false) { 
         echo 
$conn->ErrorMsg(); 
       exit; 
   }
$stringLength $recordSet->fields["STRLEN"]; // Länge des Strings 

echo $stringLength// outbut z.b.: 567 
Als nächste schritt lesen wir schrittweise teilstrings aus der DB und fügen diese dann wieder zusammen

PHP-Code:

$position  
1
while (
$stringLength ) {

$sqlQuery "SELECT SUBSTRING(NAME,$position,255) AS STR FROM MYTABLE WHERE ID = 1"

if((
$recordSet $conn->Execute($sqlQuery)) === false) { 
        echo 
$conn->ErrorMsg();
      exit; 
}

$var $recordSet->fields["STR"];     
    
$ourString.=$var

$position $position 255// aktuelle position des substr.
$stringLength $stringLength 255// stringlänge um 255 verkleinern.
}

echo 
$ourString// unser gesamtstring aus der DB 

So müsste man den komplette String wieder bekommen

PS: Diese Methode ist zwar ein wenig "aufwendig" aber wer mich einer besseren lehren möchte... ich bin immer für neue ideen offen



Bei Fragen mail an : php AT antonfunk.de
Gruß RDJ

Geändert von RDJ (16.06.2004 um 17:11:38 Uhr)
Mit Zitat antworten
Antwort


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

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 aus.
[IMG] Code ist aus.
HTML-Code ist aus.

Gehe zu


Alle Zeitangaben in WEZ +2. Es ist jetzt 01:29:32 Uhr.


Powered by vBulletin® Version 3.8.3 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.


© 2001-2024 E-Mail SELFPHP OHG, info@selfphp.deImpressumKontakt