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

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

新規登録して質問してみよう
ただいま回答率
85.48%
PHP

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

Q&A

解決済

3回答

8898閲覧

PHPからSQLServerへ繋がらない

NEO_PLANETT-777

総合スコア333

PHP

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

0グッド

1クリップ

投稿2019/07/17 00:24

現在PHPにてSQLServerへコネクション時にエラーします。
色々調べて、対応していったのですが繋がりません。
申し訳ありませんが、ご教授お願いします。

【 エラーメッセージ 】
PHP Fatal error: Call to undefined function sqlsrv_connect()

【 環境 】
サーバ:WindowsServer 2008 R2
Webサーバ:IIS 7.5
言語:PHP 5.6.31
DB:SQLServer 2008 R2
ドライバ:Microsoft Drivers for PHP for SQL Server (SQLSRV32.EXE)
(php_sqlsrv_56_ts.dll, php_pdo_sqlsrv_56_ts.dll 利用)
※ドライバはiniのextension_dirで指示したフォルダへ配置済です。

【 PHP.ini 】
extension_dir = "C:/php/ext/"
extension = php_pdo_sqlsrv_56_ts.dll
extension = php_sqlsrv_56_ts.dll

【 PHPソース 】
// SQLServer接続設定
$connInfo = array("UID" => $USER,
"PWD" => $PASS,
"DataqBase" => $DBNM,
"CharacterSet" => "UTF-8");

// SQLServer接続実行
$conn = sqlsrv_connect($SSSRVNM, $connInfo);

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

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

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

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

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

guest

回答3

0

自己解決

bitの違いが原因でした。

MSから提供されている物は、32bit用
対象PHPが64bitだったので、当然読み込まれない
従って、以下の2択となります。

1.PHPを32bit用に変更
2.64bit用のdllを導入

下名環境では他アプリも使用していたので1は不可能
2にて対応した。

投稿2019/07/24 00:35

NEO_PLANETT-777

総合スコア333

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

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

0

Windows 版 PHP の場合、extension の指定をフルパスで記述しないとダメだったような……

投稿2019/07/19 06:04

tacsheaven

総合スコア13703

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

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

NEO_PLANETT-777

2019/07/23 23:18

tacsheavenさん フルパスしなくても問題ないようです。 下のコメントに書きましたが、bitが対応してないのがオチでした(汗
guest

0

「undefined function」というエラーメッセージは、つまり「sqlsrv_connect() が定義されていない」ということです。
必要なライブラリが読み込めていないのでしょう。
php.ini を確認して、適切にライブラリを読み込むよう修正してみてください。

参考:
PHPからSQL Serverに接続してみよう (1/2):.NET開発者のためのPHPアプリお手軽開発入門 - @IT
PHP から MS SQL Server へ接続する方法のまとめとサンプルコード - Web/DB プログラミング徹底解説
sqlsrv_connect - SQL Server | Microsoft Docs


extension_dir で指定するパスは、Windowsであればスラッシュではなくバックスラッシュではないでしょうか。

すみません。
この追記は誤りのようです。

投稿2019/07/17 00:43

編集2019/07/17 01:29
alg

総合スコア2019

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

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

NEO_PLANETT-777

2019/07/18 07:29

試せてないのですが、どうも64bit版のPHPを使ってる事が原因のようです…。 現在別アプリが稼働してるので、32bit版に変更が難しく困ってますがorz
alg

2019/07/18 10:39

php_pdo_sqlsrv_56_ts.dll と php_sqlsrv_56_ts.dll を利用しているとのことですが、ということはPHPはスレッドセーフ版ですか?
NEO_PLANETT-777

2019/07/19 05:04

はいスレッドセーフ版が導入されております。 やっと試せた結果、dllの認識(PHPのInfoで認識OK)しました。 ただsqlsrv_connectでどうも繋がっていない。 falseが返ってきてるので…引数間違い?
Y.H.

2019/07/19 05:50

falseが返ってきたとき、print_r( sqlsrv_errors() ); を入れてみると何かわかるかもしれません。
NEO_PLANETT-777

2019/07/23 23:15

Y.H.さん、有難うございます。 言われた通り、ログ出してみた結果 お恥ずかしい話ですが、64bit端末なのに32bitを使っていたというオチです(汗 通常では32bitしか提供されてなかったんですけどねorz で有志?なのか64bit版が提供されていたので、それを利用させて頂いたら読み込みました。 しかし、次の問題が発生しました。 ODBCの64bitを入れたいが、セキュリティの関係上オンラインが不可能… またまた行き詰ってます…
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問