Thinkphp の MsSQL 運用経験

WBOY
リリース: 2016-06-20 12:31:38
オリジナル
1196 人が閲覧しました

Linux での MsSQL 拡張機能のインストールについては、PHP プログラマー Lei Xuesong のブログで以前に詳しく紹介されています。これを解決したら、国産の優秀なPHPフレームワークThinkPHPを使った方がスムーズかなと思いました。ただし、MsSQL データベースに接続するときに依然としていくつかの問題が発生し、オンラインには解決策があまりありませんでした。以下では、PHP プログラマーの Lei Xuesong が、ThinkPHP プロジェクトで MsSQL データベースにリンクする際のエラーと解決策を要約し、困っている友人と共有しています。

1. エラー「未定義のクラス定数 'PDO::SQLSRV_ATTR_ENCODING」

具体的な解決策は次のとおりです: ThinkPHPLibraryThinkDbDriverSqlsrv.class.php 行 26 を追加します。 「PDO::SQLSRV_ATTR_ENCODING => PDO::SQLSRV_ENCODING_UTF8」はコメントアウトできます。

2. エラー "SQLSTATE[IMSSP]: PDO オブジェクトでサポートされていない属性が指定されました"

具体的な解決策は次のとおりです: コメントのみThinkPHPLibraryThinkDbDriver.class.php の '$this->options[PDO::ATTR_EMULATE_PREPARES] = false' の 101 行目を概説します。

3. 元のテーブル名が大文字の場合、テーブル名が見つからないというエラーが報告されます。

具体的な解決策は次のとおりです。 MsSQL データベース テーブル名を小文字にするかどうかに関係なく、ThinkPHP プロジェクト内のすべてのテーブル名は小文字になります。

以下に ThinkPHP3.2 で MsSQL を動作させるための設定ファイル conf.php を添付します。

returnarray(

//'設定項目'=>'設定値'

'DB_TYPE'=>'sqlsrv',//データベースタイプ

'DB_USER'=>'',//ユーザー名

'DB_PWD'=> ; '',// パスワード

'DB_PORT'=>'',// ポート

'DB_PREFIX'=>'',// データベーステーブルプレフィックス

'DB_DSN'=>'dblib:host=IP アドレス:ポート;dbname=データベース名',

'DB_CHARSET'=>'utf8',//文字セット

) ;

このプロジェクトでは、ThinkPHP フレームワークを使用して MsSQL データベースを操作するのは初めてだったので、順風満帆ではありませんでした。それでも多くの知識を学び、いくつかの原則をまとめました。まず、実践することで真の知識が得られます。これは、PHP プログラマーにとって、環境やシステムが異なれば間違いを犯す可能性があり、それが正しいかどうかがわかります。第二に、新しい問題に直面するときは、忍耐、自信、決意が必要です。原則を明確にし、問題を自分が知っているいくつかの知識ポイントに解決します。第三に、自分自身を認識する必要があります。誰もすべてを行うことはできません。 PHP プログラマーとしてどれだけ長く活動していても、常に問題に遭遇します。もっと他の人とコミュニケーションを取り、外部の力をもっと活用し、より多くのオンライン情報を参照する必要があります。最後に、ThinkPHP 開発者とオープンソース業界に貢献してきた先輩たちに感謝したいと思います。

タグ: PHP プログラミング

出典: Thinkphp による MsSQL の操作体験

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート