ホームページ バックエンド開発 PHPチュートリアル PHP で sqlSrv を使用して Linux で Microsoft データベースに接続する方法

PHP で sqlSrv を使用して Linux で Microsoft データベースに接続する方法

Mar 03, 2018 pm 01:53 PM
linux php

PHP は、sqlSrv を使用して Microsoft の SQLSERVER データベースに接続する場合、拡張子 pdo_srv を使用する必要があります。
pdo_srv 拡張機能のインストールは pecl を使用して直接インストールできます

この記事を書いている時の環境は
ubuntu 16.04 LTS
php 7.0.27
unixODBC 2.3.5
FreeTDS 1.00.82
2018-03-02

ペク
PHP ディレクトリが Linux 環境変数にない場合、プログラムは PHP インストール ディレクトリの下の bin ディレクトリにあります。または、pecl プログラムがシステムの bin パスにリンクされていないため、pecl プログラムがインストールされていないことを示すメッセージが表示されます。

sqlsrv のインストールには unixODBC のサポートが必要です。そのため、これまでに unixODBC をインストールしたことがない場合は、まず unixODBC をインストールする必要があります。unixODBC は一連の一般的なインターフェイスのみを定義しており、特定の実装がないため、unixODBC は SQLSERVER に接続するために FreeTDS を必要とします。

1. FreeTDS をインストールします
a)、ダウンロード

http://www.freetds.org/

b)、コンパイルしてインストールします

./configure --with-tdsver=auto --prefix=/usr/local/freetds --enable-msdblib --with-gnu-ld --enable-shared --enable-static --with-unixodbc=/usr/localmake
make install
ログイン後にコピー
ログイン後にコピー

一部のオンライン チュートリアルでは –with-tdsver=8.0 と表示されます。 , コンパイル時にエラーが発生したことを報告しました。サポートされている特定の値については、./configure –help

の with-tdsver の説明を参照してください。インストールが完了すると、/usr/local/freetds に etc ディレクトリが生成されます。 .conf ファイルを使用する必要があります。
c)、構成
freetds.conf ファイルを構成します。設定する必要はありません

freetds.conf を設定しない方法は、unixODBC の設定リンクにあります

[global]#全局配置tds version = auto#更多的配置可以参考freetds官方文档,我这里这样配置已经够用了[servertag]#定义一个叫 servertag 的节点,这个节点的名称可以自定义的,不是固定#所有 # 符号的内容都可以不写在配置文件中,这里只是注释解释用#更多的细节配置看官方描述#数据库的连接IP地址host = 192.168.9.12 #数据库的端口port = 1433 #连接时默认打开的库名,【可以不配置此项】database = master 
#tds version 有全局配置,这里也可以不写tds version = auto
ログイン後にコピー
ログイン後にコピー

2. unixODBC をインストール

a)、ダウンロード

  https://sourceforge.net/projects/unixodbc/files/unixODBC/
  http://www.unixodbc.org/
  以上两个网站都可以下载到,建议到第二个官网下载吧。
ログイン後にコピー
ログイン後にコピー

b)、コンパイルしてインストールします

./configure --prefix=/usr/local/unixODBC --includedir=/usr/include  --libdir=/usr/lib -bindir=/usr/bin --sysconfdir=/etcmake 
make install
ログイン後にコピー
ログイン後にコピー

c)、設定
/etc/odbc.ini に構成を追加します

インターネット上には、コンパイルとインストールが /usr/local/etc/odbc.ini にあるというチュートリアルがあります
, このファイルはコンパイル後に生成されますが、このファイル内の設定は有効になりません。 /etc/odbc.ini で設定する必要があります

[ODBC Data Sources]#描述而已,没有测过不写行不行,理论上可行SQLSERVER2018912 = 9.12 DB

[SQLSERVER2018912]#Driver 指向的目录是FreeTDS编译生成的文件,类似一个驱动文件,稍后讲解安装方法Driver = /usr/local/freetds/lib/libtdsodbc.so
Description  = 9.12 DB,文字描述
Trace = No#Server 可以直接写 FreeTDS的freetds.conf 中配置的servertag节点名#使用freetds.conf配置时,port 也不用配置了。#因为在此直接写server IP时能配置的选项很少,而freetds.conf可以配置的细节更多#此处我已经配置了IP,freetds.conf中其实就可以不用配置。只要安装好freetds即可Server = 192.168.9.12Port = 1433#7.4或auto应该都可以。没有详细研究过TDS_Version = 7.4[Default]#全局默认配置。理论上可以不写#同上,默认使用Driver = /usr/local/freetds/lib/libtdsodbc.so
ログイン後にコピー
ログイン後にコピー

上記の設定が完了したら、テストできます。
unixODBC のコンパイル時に生成された isql プログラムを使用してテストします。 /usr/bin/isql

/usr/bin/isql SQLSERVER2018912 数据库账号 密码
ログイン後にコピー
ログイン後にコピー

isql へのパスは、isql –help を使用して表示できます。設定にエラーがない場合は、データベースに接続されていることがわかります。 SQL ステートメントを使用してクエリを実行できます。
unixODBC 設定が完了したら、PHP 拡張機能をインストールできます

3. PHP sqlsrv 拡張機能をインストールします

pecl install sqlsrv
ログイン後にコピー
ログイン後にコピー
インストール後、拡張機能を php.ini にロードし、有効にするために Apache を再起動する必要があります。

コンパイル後に画面に表示される内容にご注意ください

この記事を書いている時の環境は

ubuntu 16.04 LTS
PHP 7.0.27
unixODBC 2.3.5
FreeTDS 1.00.82
2018-03-02

PHP は、sqlSrv を使用して Microsoft の SQLSERVER データベースに接続する場合、拡張子 pdo_srv を使用する必要があります。

pdo_srv 拡張機能のインストールは pecl を使用して直接インストールできます

pecl

PHP ディレクトリが Linux 環境変数にない場合、プログラムは PHP インストール ディレクトリの下の bin ディレクトリにあります。または、pecl プログラムがシステムの bin パスにリンクされていないため、pecl プログラムがインストールされていないことを示すメッセージが表示されます。

sqlsrv のインストールには unixODBC のサポートが必要です。そのため、インストール前に unixODBC をインストールしていない場合は、最初に unixODBC をインストールする必要があります。また、unixODBC は一連の一般的なインターフェイスのみを定義し、特定のインターフェイスを持たないため、unixODBC は SQLSERVER に接続するために FreeTDS を必要とします。実装方法。

1. FreeTDS をインストールします

a)、ダウンロード

http://www.freetds.org/

b)、コンパイルしてインストールします

./configure --with-tdsver=auto --prefix=/usr/local/freetds --enable-msdblib --with-gnu-ld --enable-shared --enable-static --with-unixodbc=/usr/localmake
make install
ログイン後にコピー
ログイン後にコピー
一部のオンライン チュートリアルには –with-tdsver= と記載されています。 8.0 では、コンパイル時にエラーが発生したことを報告しました。サポートされている特定の値については、./configure –help

の with-tdsver の説明を参照してください。インストールが完了すると、/usr/local/ に etc ディレクトリが生成されます。 freetds.conf ファイルを使用する必要があります。

c)、構成
freetds.conf ファイルを構成します。設定する必要はありません

freetds.conf を設定しない方法は、unixODBC の設定リンクにあります

[global]#全局配置tds version = auto#更多的配置可以参考freetds官方文档,我这里这样配置已经够用了[servertag]#定义一个叫 servertag 的节点,这个节点的名称可以自定义的,不是固定#所有 # 符号的内容都可以不写在配置文件中,这里只是注释解释用#更多的细节配置看官方描述#数据库的连接IP地址host = 192.168.9.12 #数据库的端口port = 1433 #连接时默认打开的库名,【可以不配置此项】database = master 
#tds version 有全局配置,这里也可以不写tds version = auto
ログイン後にコピー
ログイン後にコピー
2. unixODBC をインストール

a)、ダウンロード

  https://sourceforge.net/projects/unixodbc/files/unixODBC/
  http://www.unixodbc.org/
  以上两个网站都可以下载到,建议到第二个官网下载吧。
ログイン後にコピー
ログイン後にコピー
b)、コンパイルしてインストールします

./configure --prefix=/usr/local/unixODBC --includedir=/usr/include  --libdir=/usr/lib -bindir=/usr/bin --sysconfdir=/etcmake 
make install
ログイン後にコピー
ログイン後にコピー
c)、設定

/etc/odbc.ini に構成を追加します

インターネット上には、コンパイルとインストールが /usr/local/etc/odbc.ini にあるというチュートリアルがあります

, このファイルはコンパイル後に生成されますが、このファイル内の設定は有効になりません。 /etc/odbc.ini で設定する必要があります

[ODBC Data Sources]#描述而已,没有测过不写行不行,理论上可行SQLSERVER2018912 = 9.12 DB

[SQLSERVER2018912]#Driver 指向的目录是FreeTDS编译生成的文件,类似一个驱动文件,稍后讲解安装方法Driver = /usr/local/freetds/lib/libtdsodbc.so
Description  = 9.12 DB,文字描述
Trace = No#Server 可以直接写 FreeTDS的freetds.conf 中配置的servertag节点名#使用freetds.conf配置时,port 也不用配置了。#因为在此直接写server IP时能配置的选项很少,而freetds.conf可以配置的细节更多#此处我已经配置了IP,freetds.conf中其实就可以不用配置。只要安装好freetds即可Server = 192.168.9.12Port = 1433#7.4或auto应该都可以。没有详细研究过TDS_Version = 7.4[Default]#全局默认配置。理论上可以不写#同上,默认使用Driver = /usr/local/freetds/lib/libtdsodbc.so
ログイン後にコピー
ログイン後にコピー
上記の設定が完了したら、テストできます。

unixODBC のコンパイル時に生成された isql プログラムを使用してテストします。 /usr/bin/isql

/usr/bin/isql SQLSERVER2018912 数据库账号 密码
ログイン後にコピー
ログイン後にコピー
isql へのパスは、isql –help を使用して表示できます。設定にエラーがない場合は、データベースに接続されていることがわかります。 SQL ステートメントを使用してクエリを実行できます。

unixODBC 設定が完了したら、PHP 拡張機能をインストールできます

3. PHP sqlsrv 拡張機能をインストールします

pecl install sqlsrv
ログイン後にコピー
ログイン後にコピー

インストール後、拡張機能を php.ini にロードし、有効にするために Apache を再起動する必要があります。
コンパイル後に画面に表示される内容に注目してください


以上がPHP で sqlSrv を使用して Linux で Microsoft データベースに接続する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

JSON Web Tokens(JWT)とPHP APIでのユースケースを説明してください。 JSON Web Tokens(JWT)とPHP APIでのユースケースを説明してください。 Apr 05, 2025 am 12:04 AM

JWTは、JSONに基づくオープン標準であり、主にアイデンティティ認証と情報交換のために、当事者間で情報を安全に送信するために使用されます。 1。JWTは、ヘッダー、ペイロード、署名の3つの部分で構成されています。 2。JWTの実用的な原則には、JWTの生成、JWTの検証、ペイロードの解析という3つのステップが含まれます。 3. PHPでの認証にJWTを使用する場合、JWTを生成および検証でき、ユーザーの役割と許可情報を高度な使用に含めることができます。 4.一般的なエラーには、署名検証障害、トークンの有効期限、およびペイロードが大きくなります。デバッグスキルには、デバッグツールの使用とロギングが含まれます。 5.パフォーマンスの最適化とベストプラクティスには、適切な署名アルゴリズムの使用、有効期間を合理的に設定することが含まれます。

一致式(PHP 8)とそれがスイッチとどのように異なるかを説明します。 一致式(PHP 8)とそれがスイッチとどのように異なるかを説明します。 Apr 06, 2025 am 12:03 AM

PHP8では、一致式は、式の値に基づいて異なる結果を返す新しい制御構造です。 1)Switchステートメントに似ていますが、実行ステートメントブロックの代わりに値を返します。 2)一致式の式は厳密に比較され、セキュリティが向上します。 3)スイッチステートメントの脱落の可能性を回避し、コードのシンプルさと読みやすさを向上させます。

クロスサイトリクエストフォーファリー(CSRF)とは何ですか?また、PHPにCSRF保護をどのように実装しますか? クロスサイトリクエストフォーファリー(CSRF)とは何ですか?また、PHPにCSRF保護をどのように実装しますか? Apr 07, 2025 am 12:02 AM

PHPでは、予測不可能なトークンを使用して、CSRF攻撃を効果的に防ぐことができます。特定の方法には次のものが含まれます。1。フォームのCSRFトークンを生成および埋め込みます。 2.リクエストを処理するときにトークンの有効性を確認します。

PHP関数引数と配列の開梱で...(SPLAT)演算子の目的と使用について説明してください。 PHP関数引数と配列の開梱で...(SPLAT)演算子の目的と使用について説明してください。 Apr 06, 2025 am 12:07 AM

PHPの...(SPLAT)演算子は、機能パラメーターと配列を開梱するために使用され、コードのシンプルさと効率を向上させます。 1)関数パラメーター解放:アレイ要素をパラメーターとして関数に渡します。 2)配列の開梱:アレイを別の配列または関数パラメーターに解除します。

どのようにしてクラスが拡張されたり、PHPでメソッドがオーバーライドされたりするのを防ぐことができますか? (最終キーワード) どのようにしてクラスが拡張されたり、PHPでメソッドがオーバーライドされたりするのを防ぐことができますか? (最終キーワード) Apr 08, 2025 am 12:03 AM

PHPでは、最終的なキーワードを使用して、クラスが継承されないようにし、メソッドが上書きされます。 1)クラスを決勝としてマークする場合、クラスを継承することはできません。 2)メソッドを最終的にマークする場合、メソッドはサブクラスによって書き換えられません。最終的なキーワードを使用すると、コードの安定性とセキュリティが保証されます。

c言語条件付き編集:初心者向けの詳細なガイドへの実践的なアプリケーション c言語条件付き編集:初心者向けの詳細なガイドへの実践的なアプリケーション Apr 04, 2025 am 10:48 AM

c言語条件付きコンパイルは、コンパイル時間条件に基づいてコードブロックを選択的にコンパイルするメカニズムです。導入方法には、#IFおよび#ELSEディレクティブを使用して、条件に基づいてコードブロックを選択します。一般的に使用される条件付き式には、STDC、_WIN32、Linuxが含まれます。実用的なケース:オペレーティングシステムに従って異なるメッセージを印刷します。システムの数字数に応じて異なるデータ型を使用します。コンパイラに応じて、異なるヘッダーファイルがサポートされています。条件付きコンパイルにより、コードの移植性と柔軟性が向上し、コンパイラ、オペレーティングシステム、CPUアーキテクチャの変更に適応できます。

libvは2つです libvは2つです Apr 03, 2025 pm 08:03 PM

私はLua-Libuvというプロジェクトを開発しましたが、私の経験を喜んで共有しています。プロジェクトの当初の意図は、libuv(cで書かれた非同期I/Oライブラリ)を使用して、C言語を深く学習せずに簡単なHTTPサーバーを構築する方法を探ることです。 ChatGptの助けを借りて、http.cの基本コードを完了しました。永続的な接続を扱うとき、私は正しいタイミングでリソースを閉鎖し、解放することに成功しました。最初は、接続を閉じることでメインプログラムを終了するシンプルなサーバーを作成しようとしましたが、いくつかの問題がありました。ストリーミングを使用してデータのブロックを送信しようとしましたが、機能している間、これによりメインスレッドがブロックされます。最終的に、私の目標はC言語を深く学ぶことではなかったので、このアプローチをあきらめることにしました。最後に、i

PHPで厳密なタイプ(declare(strict_types = 1);)を説明します。 PHPで厳密なタイプ(declare(strict_types = 1);)を説明します。 Apr 07, 2025 am 12:05 AM

PHPの厳格なタイプは、declare(strict_types = 1)を追加することで有効になります。ファイルの上部に。 1)関数パラメーターのタイプチェックと戻り値を強制して、暗黙の型変換を防ぎます。 2)厳格なタイプを使用すると、コードの信頼性と予測可能性を改善し、バグを減らし、保守性と読みやすさを向上させることができます。

See all articles