bd microsoft sql server cu php

Discutii despre script-uri si coduri PHP-MySQL, precum si lucru cu XML in PHP.
sterica
Mesaje:285

bd microsoft sql server cu php

Salutare,

Am un program de contabilitate CIEL ce stocheaza informatia in baza de date Microsoft SQL Server.
La instalarea programului de contabilitate automat s-a instalat si MS SQL Server 2008
Vreau sa accesez baza de date cu php, insa nu stiu cum, am gasit intr-un folder Microsoft SQL Server/MSSQL10.CIEL/MSSQL/DATA, aici am mai multe fisiere cu extensiile .ldf si .mdf.

Nu stiu nimic despre MS SQL, are tot o interfata prietenoasa ca mysql din xampp, unde pot vedea tabele, coloanele, etc?

Edit:
Am reusit sa vad tabele din programul de conta, cu ajutorul lui Microsoft SQL Server Management Studio, insa nu stiu cum as putea afisa valorile din tabele cu php?

Multumesc!

MarPlo Mesaje:4343
Salut
Nici eu nu am lucrat cu microsoft sql server, dar cunoscand PHP PDO, cred ca se poate folosi PDO pentru conectare la baza de date mssql server din php.
Pt. conectare incearca aces cod:

Cod: Selectaţi tot

$hostdb = "localhost";
$port   = 10060;
$namedb   = "my_database";
$userdb = "username";
$passdb = "password";

try {
  $dbh = new PDO ("dblib:host=$hostdb:$port;dbname=$namedb", $userdb, $passdb);
}
catch (PDOException $e) {
  echo $e->getMessage();
}
// Now you can use the $dbh object to execute instructions to microsoft sql database
Un alt exemplu:

Cod: Selectaţi tot

$dsn = 'mssql:host=localhost;dbname=database_name';
$user = 'dbuser';
$password = 'dbpass';

try {
  $dbh = new PDO($dsn, $user, $password);
} catch (PDOException $e) {
  echo 'Connection failed: ' . $e->getMessage();
}

$Query = $dsn->prepare("SELECT * FROM Tbl WHERE `ID` = :id");
$Query ->bindParam(':id', $ID, PDO::PARAM_INT);
$Query->execute();

// etc..
-In continuare, pt. lucru cu datele din acea baza de date, nu stiu, dar cred ca se pot folosi functiile PDO cu instructiunile SQL valabile si in mysql.

- Mai multe informatii utile poti sa gasesti pe internet la cautare: PHP PDO query microsoft sql server.

sterica Mesaje:285
Dupa lungi cautari am reusit sa ma conectez la MSSQL

Inainte de toate in xampp/php/ext trebuie intalat libraria pentru php_pdo_sqlsrv sau sqlsrv (pt mysql).
Libraria trebuie sa fie compatibila cu versiunea de php utilizata.
Librarile sunt de doua feluri TS si NTS (ce accepta php-ul se poate vedea in phpinfo.php la rubrica PHP Extension Build)
Am descarcat librariile de aici https://github.com/Microsoft/msphpsql/releases

Pentru conexiune m-am folosit de codul:

Cod: Selectaţi tot

<?php

try {
  $dbh = new PDO ("sqlsrv:Server=numele serverului se poate vedea in MS SQL Server Management Studio;Database=numele bazei de date tot in MSSQL SMS", "sa", "123456"); //la parola am intampinta ceva probleme dar se poate schimba ca aici https://www.youtube.com/watch?v=bVeDqtkb2HM&t=198s
  $dbh->setAttribute (PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
  echo "conexiune reusita";
}
catch (PDOException $e) {
  echo $e->getMessage();
}
// Now you can use the $dbh object to execute instructions to microsoft sql database
?>

M-am inspirat din acest tutorial video https://www.youtube.com/watch?v=hxfdbnpOqSI

Nu stiu la ce se referta aceasta linie de cod:

Cod: Selectaţi tot

$dbh->setAttribute (PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
Succes!

MarPlo Mesaje:4343
Functia PDO::setAttribute() se foloseste pt. a seta anumite atribute la obiectul PDO.
Lista cu ce atribute se pot aplica si rolul lor o gasesti la: PDO::setAttribute

- Codul:

Cod: Selectaţi tot

$dbh->setAttribute (PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
- seteaza sa returneze erorile cu baza de date, ce pot fi capturate cu: try {} catch(PDOException $e){}

sterica Mesaje:285
multumesc mult de ajutorul acordat!