פורסם בתאריך Monday, September 06, 2010 4:49 PM על ידי Guy Burstein | ישנם 2 תגובות

new logoמיקרוסופט הודיעה לאחרונה על שיחרור גירסא 2.0 של Microsoft Drivers for PHP for SQL Server, רכיב הקישוריות בין שפת PHP לבסיס הנתונים של מיקרוסופט – SQL Server.

פוסטים קשורים:

הבשורה המרכזית בגירסא זו היא השחרור של רכיב ה- PDO_SQLSRV, המוסיף תמיכה ב- PHP Data Objects (בקיצור PDO). קהילת מפתחי ה- PHP מתייחסת לגישת הפיתוח מול בסיסי נתונים העושה שימוש ב- PDO כגישה המועדפת, שכן היא מאפשרת למפתחים לכתוב קוד אחיד לצורך גישה למגוןו סוגים של בסיסי נתונים ולבנות אפליקציות העושות שימוש בהם ללא מאמץ נוסף. שחריר רכיב PDO_SQLSRV מאפשר מהיום למפתחי PHP לכתוב אתרים בגישת PDO ולאפשר לאפליקציות שלהם לעבוד מעל בסיסי נתונים כמו SQL Server וע”י כך לנצל את יתרונותיו כגון תשתית הדוחות Reporting Services וכלי ה- BI.

בנוסף לגישה ל- SQL Server, שני רכיבי הקישוריות (PDO_SQLSRV ו- SQLSRV) מאפשרים לאפליקציות PHP להתחבר גם ל- SQL Azure, בסיס הנתונים בפלטפורמת מיחשוב הענן של מיקרוסופט.

מידע נוסף ניתן למצוא בקישור: http://blogs.msdn.com/b/sqlphp/archive/2010/08/04/microsoft-drivers-for-php-for-sql-server-2-0-released.aspx

ארכיטקטורה חדשה

בעוד הפוקוס המרכזי של הגירסא החדשה היא התמיכה ב- PDO, ניצלנו את ההזדמנות להכניס מספר שינויים בארכיטקטורת הרכיבים. במסגרת השינויים יצרנו שכבה משותפת לשני הרכיבים כדי לוודא אחידות באופן הגישה לבסיס הנתונים בעת שימוש בשני הרכיבים. השינוי מאפשר לנו בעתיד להכניס שינויים ושיפורים בשני הרכיבים באופן שקוף ומהיר.

Microsoft Drivers for PHP for SQL Server

דוגמת קוד:

דוגמת הקוד הבאה מכילה קוד המבצע משימה פשוטה – שליפה והצגת רשימת פריטים מבסיס נתונים מבוסס SQL Server.

שימוש ברכיב הקישוריות הישירה ל- SQL Server (שמו SQLSRV):

<?php 
  $serverName = "(local)\sqlexpress";  
  $connectionOptions = array( "Database"=>"AdventureWorks" ); 
  /* Connect to SQL Server using Windows Authentication. */  
  $conn = sqlsrv_connect( $serverName, $connectionOptions ); 
  /* Get products by querying against the product name.*/  
  $tsql = "SELECT ProductID, Name, Color, Size, ListPrice FROM Production.Product"; 
  /* Execute the query. */  
  $getProducts = sqlsrv_query( $conn, $tsql ); 
  /* Loop thru recordset and display each record. */  
  while( $row = sqlsrv_fetch_array( $getProducts, SQLSRV_FETCH_ASSOC ) )  
  {  
    print_r( $row );  
  } 
  /* Free the statement and connection resource. */ 
  sqlsrv_free_stmt( $getProducts ); 
  sqlsrv_close( $conn ); 
?> 

גישה לבסיסי הנתונים בגישת PDO (עם רכיב SQLSRV_PDO):

<?php 
  $serverName = "(local)\sqlexpress";  
  /* Connect to SQL Server using Windows Authentication. */  
  $conn = new PDO(  sqlsrv:server=$serverName;Database=AdventureWorks" ); 
  /* Get products by querying against the product name.*/  
  $tsql = "SELECT ProductID, Name, Color, Size, ListPrice FROM Production.Product"; 
  /* Execute the query. */  
  $getProducts = $conn->query( $tsql ); 
  /* Loop thru recordset and display each record. */  
  while( $row = $getProducts->fetch( PDO::FETCH_ASSOC ) )  
  {  
    print_r( $row );  
  } 
  /* Free the statement and connection resource. */ 
  $getProducts = NULL; 
  $conn = NULL; 
?>
תהנו!