質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.44%
SQL Server

SQL Serverはマイクロソフトのリレーショナルデータベース管理システムです。データマイニングや多次元解析など、ビジネスインテリジェンスのための機能が備わっています。

IIS

IIS(Internet Information Services)はマイクロソフト社によって開発されたwebサーバーです。Windows上で動作します。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Q&A

解決済

1回答

42771閲覧

PHPでIIS上のSqlserverに接続できません。

退会済みユーザー

退会済みユーザー

総合スコア0

SQL Server

SQL Serverはマイクロソフトのリレーショナルデータベース管理システムです。データマイニングや多次元解析など、ビジネスインテリジェンスのための機能が備わっています。

IIS

IIS(Internet Information Services)はマイクロソフト社によって開発されたwebサーバーです。Windows上で動作します。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

0グッド

0クリップ

投稿2018/05/23 07:30

編集2018/05/23 08:07

前提・実現したいこと

現在、Winサーバー上にあるSqlServerのデータベースから適当なデータを取得し、
Chart.jsを使ってブラウザに描画するといった事を目指しています。
まず試に、PHPでSqlServerに接続するといった部分でエラーが出てしまいました。

初めての書き込みですので、内容に問題があればご指摘ください。
素人で手間をおかけするかもしれませんが、ご教授お願いします。

【補足情報】
プログラミング経験:マクロのみ
Web:2日目
OS:WindowsServer2012R2(IIS8.5)
サーバ:SqlServer2014Standard
エディタ:Atom
言語:PHP5.6 javascript
ブラウザ:Chrome

【エラー内容】
php.iniにてエラー表記を出すようにして、下記のエラーがでます。

Warning: sqlsrv_query() expects parameter 1 to be resource, boolean given in C:\inetpub\WebTest\test.php on line 25 Warning: sqlsrv_fetch_array() expects parameter 1 to be resource, boolean given in C:\inetpub\WebTest\test.php on line 29 Warning: sqlsrv_free_stmt() expects parameter 1 to be resource, boolean given in C:\inetpub\WebTest\test.php on line 35 Warning: sqlsrv_close() expects parameter 1 to be resource, boolean given in C:\inetpub\WebTest\test.php on line 37

【試し、確認したこと】
MSSQLドライバーは導入済。
php.iniに追加した項目
・extension=php_sqlsrv_56_nts.dll
・extension=php_pdo_sqlsrv_56_nts.dll
・extension_dir = "C:\php\ext"
・display_errors = On
・display_startup_errors = On
インスタンス名はデフォルト

php

1<!DOCTYPE html> 2<html lang="ja"> 3<head> 4 <meta charset="UTF-8"> 5 <title>タイトル</title> 6 <script src="douteki.js"></script> 7 <script type="text/javascript" src="en.js"></script> 8 <link rel='stylesheet' href='style.css' type='text/css'/> 9 <script type="text/javascript" src="Chart.js"></script> 10</head> 11 <body> 12 <?php 13 //データベースのインスタンス名を指定 14 $serverName = ".\MSSQLSERVER"; 15 //接続情報を指定 16 $connectionInfo = array("UID"=>"SQLユーザ名", 17 "PWD"=>"↑のパスワード", 18 "Database"=>"データベース名", 19 "CharacterSet"=>"UTF-8"); 20 //コネクションを確立 21 $conn = sqlsrv_connect($serverName, $connectionInfo); 22 //クエリー文を指定 23 $tsql = "SELECT * from [データベース名].[dbo].[テーブル名]"; 24 //クエリーを実行 25 $result = sqlsrv_query($conn, $tsql); ?> 26 27 <?php 28 //実行結果を描画 29 while($row = sqlsrv_fetch_array($result)) { 30 printf("<tr><td class='hdr'>".$row['id']."</td>"); 31 printf("<td>".$row['name']."</td></tr>"); 32 } ?> 33 <?php 34 //クエリー結果の開放 35 sqlsrv_free_stmt($result); 36 //コネクションのクローズ 37 sqlsrv_close($conn); ?> 38 </body> 39</html>

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

m.ts10806

2018/05/23 07:31

プログラムコード(およびエラーメッセージ)は```で囲ってください。(わからなければ質問編集画面でコード部分を選択し<code>ボタンを押してください)正しく反映されているかどうかは質問編集画面のプレビューを見ながら編集していってください。 行番号は実際のコードには存在しないものなので不要です。
退会済みユーザー

退会済みユーザー

2018/05/23 07:51

修正しました、ご指摘ありがとうございます。
退会済みユーザー

退会済みユーザー

2018/05/23 08:02

IIS = HTTPD であって HTTPD内で SQLServer は動かないよ
退会済みユーザー

退会済みユーザー

2018/05/23 08:09

失礼しました、誤認識がありました。Winサーバ上でのSQLserverでした。
m.ts10806

2018/05/23 08:09

あ、そもそも動かないという話でしたか・・
guest

回答1

0

ベストアンサー

いずれも「第1引数がresourceであることを期待する」というエラーです。
sqlsrv_connect()の結果がresourceではない(マニュアルからfalse)ということではないでしょうか?

下記のようにしてコネクションの結果を確認してください。

php

1var_dump($conn);

あと、確実に接続できたかどうかもチェックした上で次の処理にいくように組むべきと思います。

php

1$conn = sqlsrv_connect($serverName, $connectionInfo); 2if(!$conn){ 3 die("接続失敗"); 4} 5

投稿2018/05/23 08:02

m.ts10806

総合スコア80871

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2018/05/24 00:02

試してみたらSqlサーバ自体に繋がっていないとのエラーを検出しました。 srvが正しくインストールされているか、もう一度確認を行ってみます。
m.ts10806

2018/05/24 00:05

try-catchからサーバーなりDBなりが吐いているエラーを拾ってみてもいいかもしれません。 サーバーのログも確認してみてください。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.44%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問