Как войти в систему с кодом (PDO_SQLSRV), предоставленным Microsoft, для доступа к производственной таблице AdventureWorks? - PullRequest
0 голосов
/ 04 марта 2020

Я пытаюсь создать тестовое приложение для какого-то проекта с Sql Производственная таблица Server AdventureWorks с кодом (Пример приложения (PDO_SQLSRV)), предоставленным Microsoft, но когда я запускаю этот код, появляется второй код 2 или ошибка. ..

{<?php
$serverName  = "OSQSQSql\SQLEXPRESS";
/*Connect using Windows Authentication.*/
try
{
$conn = new PDO( "sqlsrv:server=$serverName ; Database=AdventureWorks2017", "", "");
$conn->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION );
}
catch(Exception $e)
{
die( print_r($e->getMessage() ) );

Вместо этого я получил этот ответ [2]

   { setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION ); } catch(Exception $e) { die( print_r($e->getMessage() ) ); } if(isset($_REQUEST['action'])) { switch( $_REQUEST['action'] ) { /* Get AdventureWorks products by querying against the product name*/ case 'getproducts': try { $params = array($_POST['query']); $tsql = "SELECT ProductID, Name, Color, Size, ListPrice FROM Production.Product WHERE Name LIKE '%' + ? + '%' AND ListPrice > 0.0"; $getProducts = $conn->prepare($tsql); $getProducts->execute($params); $products = $getProducts->fetchAll(PDO::FETCH_ASSOC); $productsCount = count($products); if($productsCount > 0) { BeginProductsTable($productCount); foreach( $products as $row ) { PopulateProductsTable( $row ); } EndProductsTable(); } else { DisplayNoProductsMsg(); } } catch(Exception $e) { die(print_r( $e->getMessage() ) ); } GetSeachTerms( !null ); break; /* Get reviews for a specified productID.*/ case 'getreview': GetPicture($_GET['productid'] ); break; /* Write a review for a specified productID.*/ case 'writereview': DisplayWriteReviewForm( $_POST['productid'] ); break; /* Submit a review to the database.*/ case 'submitreview': try { $tsql = "INSERT INTO Production.ProductReview (ProductID, ReviewerName, ReviewDate, EmailAddress, Rating, Comments) VALUES (?,?,?,?,?,?)"; $params = array(&$_POST['procductid'], &$_POST['name'], date("Y-m-d"), &$_POST['email'], &$_POST['rating'], &$_POST['comments']); $insertReview = $conn->prepare($tsql); $insertReview->execute($params); } catch(Exception $e) { die( print_r( $e->getMessage() ) ); } GetSeachTerms( true ); GetReviews( $conn, $_POST['productid'] ); break; /* Display form for uploading a picture.*/ case 'displayuploadpictureform': try { $tsql = "SELECT Name FROM Production.Product WHERE ProductID = ?"; $getName = $conn->prepare($tsql); $getName->execute(array($_GET['productid'])); $name = $getName->fetchColumn(0); } catch(Exception $e) { die(print_r( $e->getMessage() ) ); } DisplayUploadPictureForm( $_GET['procductid, $name ); break; /* Upload a new picturefor the selected product.*/ case 'uploadpicture'; try { $tsql = "INSERT INTO Production.ProductPhoto (LargePhoto) VALUES (?)"; $uploadPic = $conn->prepare($tsql); $fileStream = fopen($_FILES['file']['tmp_name'], "r"); $uploadPic->bindParam(1, $fileStream, PDO::PARAM_LOB, 0, PDO::SQLSRV_ENCODING_BINARY); $uploadPic->execute(); /* Get the first field - the identity from INSERT - so we can associate it with the product ID. */ $photoID = $conn->lastInsertid(); $tsql = "UPDATE Production.ProductProductPhoto SET ProductPhotoID = ? WHERE ProductID = ?"; $associateids->execute(array($photoID, $_POST['productid'])); } catch(Exception $e) { die(print_r($e->getMessage())); } GetPicture( $_POST['productid']); DisplayWriteReviewButton( $_POST['productid'] ); GetSeachTerms (!null); break; }//End Switch } else { GetSeachTerms( !null ); } function GetPicture( $productID ); { echo ""; echo ""; } function GetReviews( $conn, $producID ) { try { $tsql = "SELECT ReviewerName, CONVERT(verchar(32), ReviewDate, 107, AS [ReviewDate], Rating, Comments FROM ProductID = ? ORDER BY ReviewDate DESC"; $getReviews = $conn->prepare( $tsql); $getReviews->execute(array($productID)); $review = $getReviews->fetchAll(PDO::FETCH_NUM); $reviewCount = count($reviews); if($reviewCount > 0 ) { foreach($reviews as $row) { $name = $row[0]; $date = $row[1]; $rating = $row[2]; $comments = $row[3]; DisplayReview( $productID, $name, $date, $rating, $comments ); } } else { DisplayNoReviewMsg(); } } catch(Exception $e) { die(print_r($e->getMessage())); } DisplayWriteReviewButton( $producID ); GetSearchTerms(!null); } /*** Presentation and Utility Functions ***/ function BeginProductsTable($rowCount) { /* Display the beginning of the search result table. */ $headings = array("Product ID" , "Product Name", "Color", "Size", "Price"); echo "}```

Пожалуйста, что я здесь не так делаю, любое предложение, каков правильный тестовый код для создания примера приложения с PDO_SQLSRV

Ответы [ 2 ]

0 голосов
/ 12 марта 2020

Я наконец выяснил, что пошло не так, после того, как XAMPP APACHE был установлен в моей ОС, мой Sql Сервер Express Edition server name автоматически изменился без моего уведомления от

ATLANTA \ SQLEXPRESS до localhost\SQLEXPRESS он принял мой local server и отбросил формальную ATLANTA, которую я использовал ..

Так что вместо ATLANTA\SQLEXPRESS, которую я использовал для доступа к своей базе данных до XAMPP APACHE установка, теперь она localhost\sqlexpress, потому что XAMPP и SQL EXPRESS Edition в моей ОС используют тот же SERVER

0 голосов
/ 04 марта 2020

Проблема заключалась в том, что я создал папку в файле root и добавил файл в эту папку следующим образом SqlApp/adventureworks_demo.php, я решил проблему, удалив файл из папки, и поместил файл непосредственно в корневой каталог xampp / adventureworks_demo.php как указано в инструкции Microsoft ..

Так что не помещайте файл в новую папку, просто сохраните файл прямо в root файл ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...