Aller au menu - Aller au contenu
Inscris-toi au e-camp "Héberge ton jeu Facebook sur Azure" de Microsoft vendredi 25 mai à 13h30 !

SQL Server 2008 - php sqlsrv

nouveau code PHP sqlsrv

Pour accéder à cette section
Connectez-vous !
connexion_rpx

Offre d'emploi : Développeur Web PHP/Drupal (H/F)

Page 1 
Auteur Message
1 visiteur sur ce sujet (1 Anonyme)
Page 1 
Hors ligne lkaiman # Posté le 08/12/2009 à 16:41:54
Ais-je ce caractére ?!
Avatar

Études : IUP GEII d'Amiens

Bonjour à tous,

Je me permet de mettre ici des infos qui pourraient en aider plus d'un. :)

En effet, il existe moulte infos sur le net concernant les fonction PHP pour dialoguer avec SQL Server 2000-2005

Et ne pas oublier le beau manuel php ( cf: link) dans lequel j'ai beaucoup appris :D

Mais aujourd'hui, nous sommes en 2009 (bientôt 2010) et SQL Server 2008 est belle et bien présent.
Et quand votre server est upgradé avec 2008, vous vous dites:

"les doigts dans le nez la migration, mais quoi, y a même pas de migration ^^"


Et bien c'est faux


Et oui, le premier test, celui de la connections à la base sera un échec et vous vous demanderez pourquoi.
- Est-ce la bonne instance ?
- Est-ce que la surface d'exposition de SQL 2008 est en TCP/IP
- Est-ce que le browser est lancé

Et la c'est le drâme.

Mais je vais vous aider. Et oui microsoft a fait du bon boulot poru développer un meilleur outil de base de donnée, mais nous complique la tâche car les fonction mssql sont maintenant obseléte

Einh quoi, je peux plus utiliser php pour mon vieux SQL 2005 ?

Non, bien entendu tout çà fonctionne et fonctionnera toujours.



Mais pour passer à 2008 c'est une autre histoire

Tout d'abord il faut modifier votre server php et votre fichier php.ini
Fini l'époque ou on installe wampapache les yeux fermé et ne modifier que 2-3 paramétre.

Premièrement: Télécharger SQL Server Driver for PHP 1.1 - October 2009 (cf link)
Décompressez-le et placer la DLL "php_sqlsrv_52_ts_vc6.dll" dans le dossier bin/php/phpvx.x/ext

Deuxièmement: Ouvrir le fichier php.ini et ajouter aux extension la ligne suivant:
Code : Autre
1
extension=php_sqlsrv_ts.dll


Troisièmement: Redémarrer votre server php.

Ensuite votre nouveau manuel SQL 2008 de chez MSDN (cf lien)

Vous remarquerez beaucoup de différences:
Et pour commencer la fonction de conjonction:
Secret (cliquez pour afficher)
Code : PHP
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
<?php

$connectionInfo = array( "Database"=>$db, "UID"=>$uid, "PWD"=>$pwd);
$conn = sqlsrv_connect( $serverName, $connectionInfo);

if( $conn )
{
     echo "Connection ok.\n";
}
else
{
     echo "Connection not ok.\n";
     die( '<pre>'.print_r( sqlsrv_errors(), true).'</pre>');
}


sqlsrv_close( $conn);
?>


Et pour finir (car je ne vais pas toutes les faire ici), la fonction de requête de de récupération de données
Secret (cliquez pour afficher)
Code : PHP
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
<?php
$tsql = "SELECT FirstName, LastName
         FROM Person.Contact
         WHERE LastName=( ?)";

$params = array('Alan');

$stmt = sqlsrv_query( $conn, $tsql );
if( $stmt === false)
{
     echo "Error in query preparation/execution.\n";
     die( print_r( sqlsrv_errors(), true));
}

/* Retrieve each row as an associative array and display the results.*/
while( $row = sqlsrv_fetch_array( $stmt, SQLSRV_FETCH_ASSOC))
{
      echo $row['LastName'].", ".$row['FirstName']."\n";
}

?>


Vous remarquez qu'il n'y a plus de fetch array/batch/rox/field, mais une seul fonction avec un seul paramètre pour obtenir un résultat avec un tableau numéric, associatif ou les deux

Les requêtes demandes maintenant, obligatoirement en paramètre, la connections à la base.

On peut indiquer les valeurs à entrer dans les requêtes via un tableau de paramètres.

Et d'autre truc que je n'ai pas encore vue.

Je reviendrait dessus quand j'aurai terminé ma migration sql vers sql 2008



Jusqu'à quand

Mais jusqu'à quand wampserver n'intégrera pas sqlsrv dans son package
Mais jusqu'à quand manuele php n'ajoutera pas sqlsrv
Mais jusqu'à quand des petits malins ne créerons pas une classe de connections sqlsrv

En espérant aider quelque-uns dans leur recherche périlleuse sur google

A la prochaine
Édité le 16/02/2010 à 09:08:37 par lkaiman

Un probléme > Une solution > Ctrl + Shift + Echap
Image utilisateur

 
Publicité # Posté le 08/12/2009 à 16:41:54

Connecté Tracker # Posté le 08/12/2009 à 17:29:24
Avatar

Études : Université de Lyon

Tu es surement stupéfait par ta découverte, mais c'est la marche à suivre pour intégrer n'importe quelle extension non standard...

Merci d'avoir lu et simplifié la doc fournie par ms pour le reste de l'humanité :D ...

Tracker.

Un peu de lecture: PHP // MySQL // JavaScript // SQL
Cherche Job en télétravail ou près de Lorient (56)
 
Hors ligne lkaiman # Posté le 08/12/2009 à 17:53:51
Ais-je ce caractére ?!
Avatar

Études : IUP GEII d'Amiens

comment savoir qu'il existe une extension non standard avec sql 2008 alors que l'extension mssql est présente ?

et bien excuse moi mais j'ai chercher pendant un petit bout de temps.
Et à part l'update d'avril, il n'y a presque aucune trace sur le net.

Et merci de me prendre pour un triste abruti qui sort de sa grotte et de ta participation pour le moins, inutile

Un probléme > Une solution > Ctrl + Shift + Echap
Image utilisateur

 
Connecté Tracker # Posté le 08/12/2009 à 18:12:40
Avatar

Études : Université de Lyon

http://www.google.fr/search?q=php+sqlserver+2008
Second lien...

Tracker.
Édité le 08/12/2009 à 18:13:18 par Tracker

Un peu de lecture: PHP // MySQL // JavaScript // SQL
Cherche Job en télétravail ou près de Lorient (56)
 
Hors ligne lkaiman # Posté le 08/12/2009 à 18:24:53
Ais-je ce caractére ?!
Avatar

Études : IUP GEII d'Amiens

ya toujours un mec qui n'est pas content que de sgens mettent des messages sur les forum, c'est dingue

et ta recherche google, t'es bien gentils, mais ce matin çà m'a rien appris ne sachant pas qu'il fallait changer de DLL php pour dialoguer avec sql 2008

Alors qu'avec mon message (que tu as bien foutu en l'air) indiquera la même chose, plus détaillé en français pour un bon départ

et oui j'ai trouver le blog MSDN (cf lien) lors de mes recherches plus approfondies

et merci de te prendre pour le modo
Édité le 08/12/2009 à 18:25:49 par lkaiman

Un probléme > Une solution > Ctrl + Shift + Echap
Image utilisateur

 
Connecté Tracker # Posté le 08/12/2009 à 19:54:24
Avatar

Études : Université de Lyon

Je me prends pas pour un modo simplement tu en fais des tartines parce que tu as réussi à télécharger un fichier et lire une doc (de 20 lignes)... faut quand même relativiser...

Tracker.
Édité le 08/12/2009 à 19:55:05 par Tracker

Un peu de lecture: PHP // MySQL // JavaScript // SQL
Cherche Job en télétravail ou près de Lorient (56)
 
Hors ligne Cintre Sournois # Posté le 08/12/2009 à 19:56:58
Avatar
Flux RSS

Citation : lkaiman

et merci de te prendre pour le modo

C'est marrant mais ça doit faire 6 mois que je n'ai pas vu de modo sur le forum PHP.

C'est sympa ton message lkaiman ;) , mais tu aurais du écrire ça sur un blog par exemple, pour garder une trace. Ou essaye de le faire épingler, ou un tutoriel.
Le SDZ c'est un grand Chat, dans 2 jours ton message sera perdu parmi des millier d'autres.
De plus, la probabilité qu'un zéro fasse une recherche sur le forum est très mince, d'autant plus sur SQL Server.

haha, j'allai écrire la même chose Tracker, mais en ce moment j'y vais doucement. :)
Édité le 08/12/2009 à 19:59:11 par Cintre Sournois

Image utilisateur

 
Hors ligne lkaiman # Posté le 08/12/2009 à 20:09:24
Ais-je ce caractére ?!
Avatar

Études : IUP GEII d'Amiens

google est notre ami
et mettra dans ses caches cette recherche, enfin j'espére

mais t'a raison Oshiii, merci ;)

Un probléme > Une solution > Ctrl + Shift + Echap
Image utilisateur

 

Retour au forum "PHP" ou à la liste des forums

Pour accéder à cette section
Connectez-vous !
connexion_rpx