Check alle échte Black Friday-deals Ook zo moe van nepaanbiedingen? Wij laten alleen échte deals zien

Vraag


  • beckers
  • Registratie: December 2007
  • Laatst online: 27-11 10:24
Ik heb een klein scriptje geschreven om via PHP een database te benaderen. Dat werkt onder Linux prima. Nu moet het overgezet worden naar IIS. Daar heb ik echter geen ervaring mee, en het lukt me niet een verbinding met de database te maken.

Het (begin van) het php-script ziet er zo uit:
code:
1
2
3
4
5
6
7
8
9
10
11
12
  $server='localhost';
  $database="db";
  $username="username";
  $password="pw";

  $mysqli = mysqli_connect($server, $username, $password, $database);
  if (mysqli_connect_errno($mysqli)) {
    echo "Failed to connect to MySQL: " . mysqli_connect_error();}

$result = $mysqli->query("SELECT iets FROM tabel");
  while ($row = $result->fetch_assoc()) {
   array_push($lijst,$row); }


Wat is hier het IIS-equivalent van? Ik heb al een aantal varianten geprobeerd van
code:
1
2
3
4
5
6
7
8
9
 $server="sqlsrv:Server=servernaam\SQLEXPRESS; Database=db; Uid=us; PWD=password";
  $username="us";
  $password="pw";
  $database="db";

  $mysqli = mysqli_connect($server, $username, $password, $database);
  
  if (mysqli_connect_errno(mysqli)) {
    echo "Failed to connect to MySQL: " . mysqli_connect_error();}


Maar krijg steeds de foutmelding dat er geen verbinding met de database gemaakt kan worden.
Iemand een idee hoe dit met IIS werkt?

Alle reacties


  • DennusB
  • Registratie: Mei 2006
  • Niet online
En welke specifieke error krijg je er dan bij?

Owner of DBIT Consultancy | DJ BassBrewer


  • beckers
  • Registratie: December 2007
  • Laatst online: 27-11 10:24
Failed to connect to MySQL: php_network_getaddresses: getaddrinfo failed: No such host is known

Er draait ook een andere tool op de server, met de volgende regels in de config:

code:
1
2
3
4
5
6
'connectionString' => 'sqlsrv:Server=servername\SQLEXPRESS;Database=db',
'username' => 'us',
'password' => 'pw',
'charset' => 'utf8',
'tablePrefix' => 'pre_',
'initSQLs'=>array('SET DATEFORMAT ymd;','SET QUOTED_IDENTIFIER ON;'),


Die heb ik overgenomen, maar dat werkt dus nog niet.

(ik ben ook een DennisB :)

[ Voor 61% gewijzigd door beckers op 20-03-2017 12:29 ]


  • GlowMouse
  • Registratie: November 2002
  • Niet online
Als je in de documentatie kijkt, zie je dat het eerste argument van mysqli_connect een host/ip moet zijn. Waarom spreek je van MySQL als je een MS SQL server hebt?

[ Voor 19% gewijzigd door GlowMouse op 20-03-2017 12:23 ]


  • MdBruin
  • Registratie: Maart 2011
  • Laatst online: 12-05-2024
Ik zie dat je ik je script dat je met een microsoft sql server probeert te connecten, deze link al gezien?
http://php.net/manual/en/function.sqlsrv-connect.php

  • beckers
  • Registratie: December 2007
  • Laatst online: 27-11 10:24
Net geprobeerd met de code in de manual:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
<?php
  $serverName="sqlsrv:Server=servernaam\SQLEXPRESS";
  $connectionInfo= array( "Database"=>"db", "UID"=>"us", "PWD"=>"password" );
 
  $conn = sqlsrv_connect( $serverName, $connectionInfo);

if( $conn ) {
     echo "Connection established.<br />";
}else{
     echo "Connection could not be established.<br />";
     die( print_r( sqlsrv_errors(), true));
}
?>


Maar nu gebeurt er helemaal niets (leeg scherm). In het log-bestand is echter geen php-fout te zien?

  • MdBruin
  • Registratie: Maart 2011
  • Laatst online: 12-05-2024
En deze code?

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
<?php
  $serverName="servernaam\SQLEXPRESS";
  $connectionInfo= array( "Database"=>"db", "UID"=>"us", "PWD"=>"password" );
 
  $conn = sqlsrv_connect( $serverName, $connectionInfo);

if( $conn ) {
     echo "Connection established.<br />";
}else{
     echo "Connection could not be established.<br />";
     die( print_r( sqlsrv_errors(), true));
}
?>


Even servernaam aanpassen naar je daadwerkelijke server naam en controleren of je sqlexpress gebruikt.

Edit: na opmerking van Philipsfan, // niet voor de servernaam gebruiken. Verkeerd begrepen door de documentatie half te lezen. In het geval dat de sql installatie op dezelfde host staat als de site kan je ook localhost als servernaam gebruiken.

[ Voor 19% gewijzigd door MdBruin op 20-03-2017 13:44 ]


  • PhilipsFan
  • Registratie: Oktober 2003
  • Laatst online: 15:55
En forward slashes gebruiken, PHP houdt niet zo van backslashes binnen dubbele quotes. Dat is daar een escape character.

  • MdBruin
  • Registratie: Maart 2011
  • Laatst online: 12-05-2024
PhilipsFan schreef op maandag 20 maart 2017 @ 13:15:
En forward slashes gebruiken, PHP houdt niet zo van backslashes binnen dubbele quotes. Dat is daar een escape character.
Aangepast,de documentatie niet helemaal gelezen en de informatie uit de notitie genomen zonder na te denken dat een dubbele // een escape is..... :z
Pagina: 1