[PHP/MSSQL] Connecten naar MSSQL syntax*

Pagina: 1
Acties:
  • 374 views sinds 30-01-2008
  • Reageer

Onderwerpen


Acties:
  • 0 Henk 'm!

  • noot101
  • Registratie: Februari 2002
  • Laatst online: 14-09 21:43
Ik probeer met mijn PHP-script te connecten met een MSSQL-server welke op een (fysiek) andere server draait.

ik gebruik het volgende script om te connecten:
code:
1
2
$conn = mssql_connect ('sqlservername\instancename', "username", "password") or die (mssql_get_last_message());
    mssql_select_db('databasename', $conn);

Ik krijg dan helemaal niks te zien. Als ik i.p.v. mssql_get_last_message() een string neerzet dan krijg ik die string te zien als ik het script draai.

Ik weet wel zeker dat mssql geladen is in PHP want in de output van php_info() krijg ik ook het kopje mssql te zien met daaronder een aantal parameters.

Het probleem is dus dat ik die verbinding met de server niet kan maken, maar ook dat mssql_get_last_message() geen foutmeldingen geeft.

Ik heb op de webserver de volgende configuratie:
Windows 2003 Enterprise R2
IIS 6.0
PHP 5.21

en op de Database server:
Windows 2003 Enterprise R2
MS SQLserver 2000

Acties:
  • 0 Henk 'm!

  • BtM909
  • Registratie: Juni 2000
  • Niet online

BtM909

Watch out Guys...

En op IP connecten naar je instance werkt wel?

edit:

Verzin ook even een beschrijvendere titel en stuur die als suggestie middels de Afbeeldingslocatie: http://gathering.tweakers.net/global/templates/tweakers/images/icons/icon_hand.gif knop ;)

[ Voor 68% gewijzigd door BtM909 op 29-05-2007 16:08 ]

Ace of Base vs Charli XCX - All That She Boom Claps (RMT) | Clean Bandit vs Galantis - I'd Rather Be You (RMT)
You've moved up on my notch-list. You have 1 notch
I have a black belt in Kung Flu.


Acties:
  • 0 Henk 'm!

  • noot101
  • Registratie: Februari 2002
  • Laatst online: 14-09 21:43
op IP krijg ik nog steeds hetzelfde

offtopic:
Was idd de titel verder vergeten, heb al een suggestie ingediend

Acties:
  • 0 Henk 'm!

  • igmar
  • Registratie: April 2000
  • Laatst online: 03-09 22:58

igmar

ISO20022

Firewall ?

Acties:
  • 0 Henk 'm!

Verwijderd

Ik heb even op PHP.NEt gelezen.
bij mssql_connect en mssql_get_last_message.
Vooral mssql_connect heeft het in 2 of 3 posts over het feit, dat je de poort ook nog aan die "named instance" moet meegeven.
Is dat misschien iets?

Acties:
  • 0 Henk 'm!

  • Reinier
  • Registratie: Februari 2000
  • Laatst online: 21:27

Reinier

\o/

Hier staat iets wat op jou probleem lijkt. Misschien heb je er iets aan.

Acties:
  • 0 Henk 'm!

  • _js_
  • Registratie: Oktober 2002
  • Laatst online: 18-08 21:31
Staat er ook iets in de windows event viewer (misschien iets over een applicatie/dll die niet gestart kan worden, en dat komt dan weer omdat een afhankelijke dll niet de juiste rechten heeft)

Je syntax klopt wel, en zou gewoon moeten werken.

Houdt er trouwens wel rekening mee dat wanneer je dit werkend hebt er een aantal vervelende bugs zitten in de mssql connectiviteit van PHP, namelijk als er een error voorkomt in je sql batch of sp, dan krijg je geen parameters of resultaten terug, ook niet wanneer je error in sql afgehandeld wordt (dit is redelijk simpel op te lossen in de source van php). Een andere vervelende bug is dat je maar 1 sp open kunt hebben met mssql_init, als je je vorige niet sluit met mssql_free_statement krijg je zo nu en dan vage foutmeldingen.

Acties:
  • 0 Henk 'm!

  • noot101
  • Registratie: Februari 2002
  • Laatst online: 14-09 21:43
Nee er zit geen firewall tussen, alles tussen die 2 servers staat open.
_js_ schreef op dinsdag 29 mei 2007 @ 18:33:
Staat er ook iets in de windows event viewer (misschien iets over een applicatie/dll die niet gestart kan worden, en dat komt dan weer omdat een afhankelijke dll niet de juiste rechten heeft)
Nee er staat niks in de eventviewer. De betreffende dll kan ook wel gestart worden, want in php_info() krijg ik te zien dat mssql geladen is.

Acties:
  • 0 Henk 'm!

  • SteeringWheel
  • Registratie: Augustus 2004
  • Laatst online: 17-09 22:13
noot101 schreef op dinsdag 29 mei 2007 @ 16:03:

ik gebruik het volgende script om te connecten:
code:
1
2
$conn = mssql_connect ('sqlservername\instancename', "username", "password") or die (mssql_get_last_message());
    mssql_select_db('databasename', $conn);
Gebruik zelf bovenstaande ook, alleen dan ipv 'sqlservername\instancename' alleen 'sqlservername'. Voor SQL2005 moet je wel 'sqlservername\instancename' gebruiken dacht ik.

A forum post should be like a skirt. Long enough to cover the subject material, but short enough to keep things interesting.


Acties:
  • 0 Henk 'm!

  • noot101
  • Registratie: Februari 2002
  • Laatst online: 14-09 21:43
SteeringWheel schreef op woensdag 30 mei 2007 @ 16:13:
[...]


Gebruik zelf bovenstaande ook, alleen dan ipv 'sqlservername\instancename' alleen 'sqlservername'. Voor SQL2005 moet je wel 'sqlservername\instancename' gebruiken dacht ik.
Wat jij hebt kan volgens mij alleen als je je database onder de default instance hebt zitten.

Acties:
  • 0 Henk 'm!

  • noot101
  • Registratie: Februari 2002
  • Laatst online: 14-09 21:43
Ik heb het ondertussen opgelost.
Het had te maken met een DLL die vervangen moest worden op de server:
I am running MS SQL Server 2005 Workgroup Edition on Windows 2003 with PHP 5. I could not connect to a MS SQL database using mssql_pconnect(); until I read a post from ashraf (aat) ametry.com on 01-May-2006 01:25. However, my fix was simply to:

1. Replace the ntwdblib.dll with the one from http://webzila.com/dll/1/ntwdblib.zip in my c:\php5 folder.

2. Restart IIS

REASON: The ntwdblib.dll should be version 2000.80.194.0, and not version 2000.2.8.0 that PHP 5 ships with.

Thank you ashraf for posting your note, however, changing the php.ini file value mssql.secure_connection = On did not work. I left it mssql.secure_connection = Off and that worked (the default to connect through NT/Windows Authentication)
Pagina: 1