|  | 		    
					
        
         
          
         
	
          | |  | Argh. Debian+php4+mssql = vriker... og så ~ Fra : mzedeler@gmail.com
 | 
 Dato :  22-09-06 14:54
 | 
 |  | Dette her er meget meget mærkeligt.
 
 På en Debian 3.1 (Sarge) har jeg installeret php4.
 
 Kører jeg dette script
 
 <?php
 $link = mssql_connect('mindatabase', 'minbruger',
 'mitpassword') or die ("Argh");
 $result = mssql_query("SELECT * FROM kunder", $link);
 print implode(", ", mssql_fetch_row($result));
 ?>
 
 Får jeg et resultat direkte fra databaseserveren mindatabase, som er
 en Windows 2003-maskine med MS SQL. Det er jo fint. Men så bliver det
 rigtig underligt, for
 
 php -m
 
 Giver:
 
 [PHP Modules]
 bcmath
 bz2
 calendar
 ctype
 dba
 dbx
 exif
 filepro
 ftp
 gettext
 iconv
 imap
 mbstring
 mime_magic
 ncurses
 openssl
 overload
 pcntl
 pcre
 posix
 session
 shmop
 sockets
 standard
 sybase_ct
 sysvmsg
 sysvsem
 sysvshm
 tokenizer
 wddx
 xml
 xmlrpc
 xslt
 yp
 zip
 zlib
 
 Modulet "mssql" er altså IKKE installeret!?!¤&#¤
 
 Hvis jeg prøver at bruge PEAR-modulet MDB2 med mssql, siger den at
 mssql ikke er installeret, men det er det jo, for funktionerne virker
 udemærket.
 
 I php.ini er der også en masse konfigurationsting til mssql-modulet.
 Hvad i alverden er det, der foregår? Er det lykkedes for
 php4-pakke-passeren hos Debian at compile msqql ind i php4 på en
 måde, så php4 ikke ved at modulet er med?
 
 Mvh. Michael.
 
 
 
 |  |  | 
  Jesper Brunholm (22-09-2006) 
 
	
          | |  | Kommentar Fra : Jesper Brunholm
 | 
 Dato :  22-09-06 15:26
 | 
 |  | 
 
            mzedeler@gmail.com skrev:
 > På en Debian 3.1 (Sarge) har jeg installeret php4.
 > 
 >         $link = mssql_connect('mindatabase', 'minbruger',
 > 'mitpassword') or die ("Argh");
 >         $result = mssql_query("SELECT * FROM kunder", $link);
 >         print implode(", ", mssql_fetch_row($result));
 > ?>
 > 
 > Får jeg et resultat direkte fra databaseserveren mindatabase, som er
 > en Windows 2003-maskine med MS SQL. Det er jo fint. Men så bliver det
 > rigtig underligt, for
 [snip: du kan lave et mssql_connect kald, men Pear mener ikke at mssql 
 modulet er installeret]
 Jeg ved ikke ret meget om Debian, og endnu mindre om non-apache servere 
 med PHP, men kan du bruge den her til noget? 
 <http://www.aspfree.com/c/a/MS-SQL-Server/Using-PHP-with-MS-SQL-Server/> Jeg synes som regel man får bedre information om en installation med 
 php_info()
 mvh
 Jesper Brunholm
            
             |  |  | 
  Michael Zedeler (22-09-2006) 
 
	
          | |  | Kommentar Fra : Michael Zedeler
 | 
 Dato :  22-09-06 19:37
 | 
 |  | 
 
            Jesper Brunholm wrote:
 > mzedeler@gmail.com skrev:
 > 
 >> På en Debian 3.1 (Sarge) har jeg installeret php4.
 >>
 >>         $link = mssql_connect('mindatabase', 'minbruger',
 >> 'mitpassword') or die ("Argh");
 >>         $result = mssql_query("SELECT * FROM kunder", $link);
 >>         print implode(", ", mssql_fetch_row($result));
 >> ?>
 >>
 >> Får jeg et resultat direkte fra databaseserveren mindatabase, som er
 >> en Windows 2003-maskine med MS SQL. Det er jo fint. Men så bliver det
 >> rigtig underligt, for
 > 
 > [snip: du kan lave et mssql_connect kald, men Pear mener ikke at mssql 
 > modulet er installeret]
 > 
 > Jeg ved ikke ret meget om Debian, og endnu mindre om non-apache servere 
 > med PHP, men kan du bruge den her til noget?
 > <http://www.aspfree.com/c/a/MS-SQL-Server/Using-PHP-with-MS-SQL-Server/> Der står ikke rigtig noget, jeg ikke vidste i forvejen - at FreeTDS, 
 Sybase og MS SQL bruger samme protokol.
 Til gengæld fandt jeg ud af hvad problemet er. Hvis man kigger på 
 listen, står der at sybase_ct er installeret. Jeg prøvede at 
 afinstallere det modul blot for at se om mon ikke mssql-funktionerne så 
 skulle forsvinde, og mindsanten om ikke de gjorde det!
 Med andre ord, er der to moduler til PHP som leverer de samme funktioner 
 til at kommunikere med mssql. Jeg gad nok vide hvad der sker hvis man 
 ønsker at have dem begge på en gang. SUK.
 Jeg bliver aldrig glad for PHP.
 Løsningen er, at jeg bruger PEARs DB i stedet for den nyere MDB2 indtil 
 en eller anden udvikler indser at sybase_ct er et alias for mssql 
 (modulo diverse afvigende implementationer, som sikkert er en pain in 
 the a.. at håndtere).
 Mvh. Michael.
 -- 
 Which is more dangerous? TV guided missiles or TV guided families?
 I am less likely to answer usenet postings by anonymous authors.
 Visit my home page at http://michael.zedeler.dk/ |  |  | 
   Stig Johansen (24-09-2006) 
 
	
          | |  | Kommentar Fra : Stig Johansen
 | 
 Dato :  24-09-06 05:26
 | 
 |  | Michael Zedeler wrote:
 
 > Der står ikke rigtig noget, jeg ikke vidste i forvejen - at FreeTDS,
 > Sybase og MS SQL bruger samme protokol.
 [snip]
 
 > Jeg bliver aldrig glad for PHP.
 >
 > Løsningen er, at jeg bruger PEARs DB i stedet for den nyere MDB2 indtil
 > en eller anden udvikler indser at sybase_ct er et alias for mssql
 > (modulo diverse afvigende implementationer, som sikkert er en pain in
 > the a.. at håndtere).
 
 Jeg bruger ikke selv PHP, men don't blame it on PHP.
 
 Problemet er, at MS SQLServer er en videreudvikling af Sybase, der begge
 bruger TDS. På det tidspunlt, hvor MS købte Sybase, var det samme version.
 TDS er en lukket protokol, og jeg går ud fra, at MS gør sit bedste for at
 den ikke fungerer under *nix.
 
 FreeTDS er en implementering baseret på reverse engeneering, hvilket gør, at
 det altid vil være et catch-up game.
 
 Jeg prøvede for en del år siden at connecte til en MS SQLserver 2K via
 FreeTDS, but no luck.
 
 Det ser dog ud som om mono-projektet har pustet nyt liv(behov?) i FreeTDS.
 
 --
 Med venlig hilsen
 Stig Johansen
 
 
 |  |  | 
    Michael Zedeler (24-09-2006) 
 
	
          | |  | Kommentar Fra : Michael Zedeler
 | 
 Dato :  24-09-06 18:00
 | 
 |  | 
 
            Stig Johansen wrote:
 > Michael Zedeler wrote:
 > 
 > 
 >>Der står ikke rigtig noget, jeg ikke vidste i forvejen - at FreeTDS,
 >>Sybase og MS SQL bruger samme protokol.
 > 
 > [snip]
 > 
 > 
 >>Jeg bliver aldrig glad for PHP.
 >>
 >>Løsningen er, at jeg bruger PEARs DB i stedet for den nyere MDB2 indtil
 >>en eller anden udvikler indser at sybase_ct er et alias for mssql
 >>(modulo diverse afvigende implementationer, som sikkert er en pain in
 >>the a.. at håndtere).
 > 
 > Jeg bruger ikke selv PHP, men don't blame it on PHP.
 > 
 > Problemet er, at MS SQLServer er en videreudvikling af Sybase, der begge
 > bruger TDS. På det tidspunlt, hvor MS købte Sybase, var det samme version.
 > TDS er en lukket protokol, og jeg går ud fra, at MS gør sit bedste for at
 > den ikke fungerer under *nix.
 Jeg er udemærket bekendt med problemet, men det forklarer ikke hvorfor 
 der findes både et mssql-modul og et sybase_ct-modul til PHP, som har 
 funktioner der starter med mssql. Det kan man i høj grad godt beskylde 
 PHP-udviklerne for. Selvfølgelig skulle sybase-modulet have præfikset 
 sybase.
 > FreeTDS er en implementering baseret på reverse engeneering, hvilket gør, at
 > det altid vil være et catch-up game.
 > 
 > Jeg prøvede for en del år siden at connecte til en MS SQLserver 2K via
 > FreeTDS, but no luck.
 Det virker fint nu, skulle jeg hilse og sige.
 Mvh. Michael.
 -- 
 Which is more dangerous? TV guided missiles or TV guided families?
 I am less likely to answer usenet postings by anonymous authors.
 Visit my home page at http://michael.zedeler.dk/ |  |  | 
     Johan Holst Nielsen (25-09-2006) 
 
	
          | |  | Kommentar Fra : Johan Holst Nielsen
 | 
 Dato :  25-09-06 05:56
 | 
 |  | Michael Zedeler wrote:
 >> Problemet er, at MS SQLServer er en videreudvikling af Sybase, der begge
 >> bruger TDS. På det tidspunlt, hvor MS købte Sybase, var det samme
 >> version.
 >> TDS er en lukket protokol, og jeg går ud fra, at MS gør sit bedste for at
 >> den ikke fungerer under *nix.
 >
 > Jeg er udemærket bekendt med problemet, men det forklarer ikke hvorfor
 > der findes både et mssql-modul og et sybase_ct-modul til PHP, som har
 > funktioner der starter med mssql. Det kan man i høj grad godt beskylde
 > PHP-udviklerne for. Selvfølgelig skulle sybase-modulet have præfikset
 > sybase.
 
 Lyder mere som en compling fejl et sted... nu kender jeg ikke
 "sybase_ct" modulet - det er heller ikke nævnt på PHP's side (måske er
 det uoffielt?) - Sybase funktionerne (iflg. php.net) skal alle starte
 med sybase_* - tror nærmere det er din version som er compiled forkert
 eller der er brugt et forkert modul et sted.
 
 Men stadig er det noget pjat ar skyde skylden på PHP. Modulerne i PHP
 kan være udviklet af hvem som helst. Du kan selv udvikle dine
 funktioner, og compile dem med PHP? Så fejlen kan stadig ligge masser af
 steder...
 
 mvh
 johan
 
 
 |  |  | 
      Michael Zedeler (25-09-2006) 
 
	
          | |  | Kommentar Fra : Michael Zedeler
 | 
 Dato :  25-09-06 19:56
 | 
 |  | 
 
            Johan Holst Nielsen wrote:
 > Michael Zedeler wrote:
 > 
 >>> Problemet er, at MS SQLServer er en videreudvikling af Sybase, der begge
 >>> bruger TDS. På det tidspunlt, hvor MS købte Sybase, var det samme 
 >>> version.
 >>> TDS er en lukket protokol, og jeg går ud fra, at MS gør sit bedste 
 >>> for at
 >>> den ikke fungerer under *nix.
 >>
 >>
 >> Jeg er udemærket bekendt med problemet, men det forklarer ikke hvorfor 
 >> der findes både et mssql-modul og et sybase_ct-modul til PHP, som har 
 >> funktioner der starter med mssql. Det kan man i høj grad godt beskylde 
 >> PHP-udviklerne for. Selvfølgelig skulle sybase-modulet have præfikset 
 >> sybase.
 > 
 > Lyder mere som en compling fejl et sted... nu kender jeg ikke 
 > "sybase_ct" modulet - det er heller ikke nævnt på PHP's side (måske er 
 > det uoffielt?) - Sybase funktionerne (iflg. php.net) skal alle starte 
 > med sybase_* - tror nærmere det er din version som er compiled forkert 
 > eller der er brugt et forkert modul et sted.
 Det er en helt frisk debian-pakke.
 > Men stadig er det noget pjat ar skyde skylden på PHP. Modulerne i PHP 
 > kan være udviklet af hvem som helst. Du kan selv udvikle dine 
 > funktioner, og compile dem med PHP? Så fejlen kan stadig ligge masser af 
 > steder...
 Det kan godt være at du synes at det er noget pjat. Jeg synes at de 
 skulle have organiseret deres pakkesystem bedre, så den slags fejl ikke 
 kan opstå så nemt. Hele det cirkus med at alle databasefunktionerne 
 hedder noget forskelligt, at afhængigt af hvilken database, man snakker 
 med, har jeg altid fundet amatøragtigt. Først nu hvor der er dukket et 
 databaseabstraktionslag - 10-15 år efter PHP blev til, kan man skifte 
 database uden at skulle lave søg og erstat igennem al koden.
 Mvh. Michael.
 -- 
 Which is more dangerous? TV guided missiles or TV guided families?
 I am less likely to answer usenet postings by anonymous authors.
 Visit my home page at http://michael.zedeler.dk/ |  |  | 
       Nezar Nielsen (02-10-2006) 
 
	
          | |  | Kommentar Fra : Nezar Nielsen
 | 
 Dato :  02-10-06 15:55
 | 
 |  | 
 
            Michael Zedeler wrote:
 > med, har jeg altid fundet amatøragtigt. Først nu hvor der er dukket et 
 > databaseabstraktionslag - 10-15 år efter PHP blev til, kan man skifte 
 > database uden at skulle lave søg og erstat igennem al koden.
 Nå nå nå,
http://pear.php.net/package/DB/download/  siger
 1.2     2002-04-24     stable
 Og jeg er ret sikker på at jeg i hvert fald har brugt DB klassen før det.
 Version 3, som for de fleste nok er den første "rigtige" php kom da 
 først omkring '97, så vi taler kun 5 år - Såvidt jeg lige kan google mig 
 til blev perl opfundet i '87 og den første version af DBI(eller DBperl 
 som den hed) blev skrevet i '92, og du sidder vel ikke at siger at perl 
 er amatøragtigt? ;)
 -- 
 Mvh. Nezar Nielsen
http://gorilla.dk |  |  | 
     Johan Holst Nielsen (25-09-2006) 
 
	
          | |  | Kommentar Fra : Johan Holst Nielsen
 | 
 Dato :  25-09-06 06:04
 | 
 |  | Michael Zedeler wrote:
 > Jeg er udemærket bekendt med problemet, men det forklarer ikke hvorfor
 > der findes både et mssql-modul og et sybase_ct-modul til PHP, som har
 > funktioner der starter med mssql. Det kan man i høj grad godt beskylde
 > PHP-udviklerne for. Selvfølgelig skulle sybase-modulet have præfikset
 > sybase.
 
 5 minutter brugt i dokumentationen fortæller:
 "...it is possible to install both the FreeTDS libraries and the Sybase
 libraries.  The problem is that the Sybase extension alias's its
 function names to the mssql_ functions.
 
 Take a look in your PHP source directory under
 /ext/sybase_ct/php_sybase_ct.c near the top where the sybase_functions[]
 declaration is.  You can comment out the part that alias's the function
 names, recompile with FreeTDS and Sybase, and you're all set!"
 
 mvh
 Johan
 
 
 |  |  | 
      Michael Zedeler (25-09-2006) 
 
	
          | |  | Kommentar Fra : Michael Zedeler
 | 
 Dato :  25-09-06 19:58
 | 
 |  | 
 
            Johan Holst Nielsen wrote:
 > Michael Zedeler wrote:
 > 
 >> Jeg er udemærket bekendt med problemet, men det forklarer ikke hvorfor 
 >> der findes både et mssql-modul og et sybase_ct-modul til PHP, som har 
 >> funktioner der starter med mssql. Det kan man i høj grad godt beskylde 
 >> PHP-udviklerne for. Selvfølgelig skulle sybase-modulet have præfikset 
 >> sybase.
 > 
 > 5 minutter brugt i dokumentationen fortæller:
 > "...it is possible to install both the FreeTDS libraries and the Sybase 
 > libraries.  The problem is that the Sybase extension alias's its 
 > function names to the mssql_ functions.
 Tak for henvisningen.
 > Take a look in your PHP source directory under 
 > /ext/sybase_ct/php_sybase_ct.c near the top where the sybase_functions[] 
 > declaration is.  You can comment out the part that alias's the function 
 > names, recompile with FreeTDS and Sybase, and you're all set!"
 Vi har taget en beslutning om kun i alleryderste nødstilfælde at compile 
 egne pakker. Så kan jeg selvfølgelig altid skyde med skarpt efter 
 debian-pakkepasseren, men man må jo spørge sig selv hvorfor man i første 
 omgang har valgt overhovedet at gøre det muligt at lave namespace-kludge...?
 Svar: fordi PHP ikke har et indbygget databaseabstraktionslag. Dermed er 
 bolden tilbage hos PHP-udviklerne, der lagde fundamentet til problemet.
 Så jeg kan stadigvæk ikke lide PHP.
 Mvh. Michael.
 -- 
 Which is more dangerous? TV guided missiles or TV guided families?
 I am less likely to answer usenet postings by anonymous authors.
 Visit my home page at http://michael.zedeler.dk/ |  |  | 
 |  |