問題タブ [pdo-odbc]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
3083 参照

sql-server - PDO_ODBC および unixODBC は MSSQL をデフォルト以外のポートに接続できません

PHP/Linux 環境で 2 つの MSSQL サーバーを接続する必要があります。そこで、unixODBC と PDO_ODBC を使用することにしました。

  • server1 の mssql: 10.10.10.5:1433

  • server2 の mssql: 10.10.10.8:14233 (非既定のポート番号)

PDO_ODBC または unixODBC のポートに問題があると思います。以下のコードを試しました。

このコードは正常に動作します。正常に接続されました。

このコードは機能しませんでした。通信失敗。

奇妙なことに、このコードは間違った値でも問題なく動作します。:(

私は、誰かが PDO の dsn のポート設定を無視していると結論付けました。

を使用して他の設定も試しました/etc/odbc.ini

そして、このコードは接続を確立しませんでした。

エラーメッセージ:

そして、このコードは正常に動作します。

そして、このコードは接続を確立しませんでした。

ポートはすべて開いています。tcpdump接続が常に ms-sql-s (1433) を使用していることを示します。 sqlcmd正常に動作します。

私は何が欠けているのだろうか。または、mssql に接続する他の方法はありますか?

  • CentOS 6.6
  • PHP 5.5.19
  • sqlncli-11.0.1790.0

-

0 投票する
1 に答える
765 参照

php - Zend Framework 2 と ODBC ドライバーを使用した Linux 上の MS SQL Server への接続がビジーです

Windows サーバーのセットアップを Linux (Red Hat 7.2) サーバーに移行する必要がありました。以前は、Windows マシンでpdo_sqlsrvドライバーを使用していました。Linux では、pdo_odbcドライバーをインストールしました。しかし、Zend Framework 2 はそのままではこれをサポートしていないため、現在動作する ZF2 API ドキュメントを使用して自分で db 構成を見つけました。これは構成です:

ここまでは順調ですね。アプリケーションを実行すると、単純な GET リクエストがオブジェクトの詳細を取得するたびに失敗するまで、すべてが期待どおりに進みます。その前に実行された他のリクエストを削除しても、リクエストを機能させることはできません。リクエストを別の方法で連鎖させても役に立ちません。これはエラーです:

MARS_Connection を設定しようとしました (smozgurの回答で、ネイティブ クライアント エラー 'Connection is busy with results for another command' を修正する方法はこちらで説明されています)。しかし、そのような /etc/odbc.ini ファイルはなく、/etc/odbcinst.ini ファイルしかありません。したがって、/etc/odbcinst.ini ファイルは次のようになります。

これを機能させるために、セットアップで何かが欠けていますか?

0 投票する
0 に答える
752 参照

sql-server - Eloquent ORM を PDO ODBC SQLServer Laravel5 Framework で使用する方法

雄弁なORM laravel5 PDO ODBC接続を使用してすべてのユーザーを取得するためのクエリを実行しようとしています。

このエラーが発生します

ご覧のとおり、FreeTDS を使用して SQL Server に接続していますが、このドライバーに追加の構成が必要なのか、laravel コアを変更する必要があるのか​​わかりません。

このエラーの主な問題は、 と を囲むバックスラッシュと\"Users\" and \"email\"引用符です。この引用符を削除する方法と、laravel がこれを行っている理由を教えてください。Usersemail

ただし、これを試してみると

それは完全に機能しますが、これはlaravelでクエリを作成するためのより良い方法ではないと思います.

ユーザーモデルのスクリーンショット ユーザーモデルのスクリーンショット


ご参考までに

Mac OS X EL Capitan、MAMP Server、php 5.6.10、pdo-odbcでlaravel 5を使用しています

0 投票する
1 に答える
34 参照

php - PDO odbc が不正なハッシュ化されたパスワード文字列を返す

ユーザーのパスワードをSQL Server 2008 R2にハッシュしています。登録はうまくいきます。ハッシュ化されたパスワードは、次のコードによって正しく保存されます。

ログインスクリプトを実行したいときは、次のようにします。

これは常に false を返します。これは、何らかの理由でユーザー情報が電子メールとハッシュ化されたパスワードに問題を抱えて到着しているためです。

最初のクエリで取得したユーザー情報から var_dump() を実行すると、次のようになります。

何らかの理由で、ハッシュ フィールドと電子メール フィールドに問題が発生しています。

助けてくれてありがとう。

0 投票する
0 に答える
540 参照

php - PDO は複数のクエリで例外をスローしません

複数のクエリを実行するときに PDO に例外をスローさせるにはどうすればよいですか?

エラーのあるSQLを単独で実行すると:

次に、予想されるエラーが発生します。

PHP 致命的なエラー: Uncaught PDOException: SQLSTATE[42S22]: 列が見つかりません: 207 [Microsoft][ODBC Driver 13 for SQL Server][SQL Server]列名 'other' が無効です。(/build/php7.0-41GaEn/php7.0-7.0.8/ext/pdo_odbc/odbc_stmt.c:260 の SQLExecute[207])

ただし、最初に適切な SQL を実行し、その後に悪い SQL を実行すると、エラーが飲み込まれ、すべて正常に表示されます。しかし、後でデータベースを見ると、悪いステートメントの後にすべてのクエリが失敗することが確認されます。

この回答で示されてwhile ($statement->nextRowset())いるように、返されたすべての行セットを繰り返し処理していますが、これは正確に 8 回しか出力されません。

つまり、次のようになります。

  • 1 - 最初のドロップ
  • 1 - フル ddl
  • 3 - 最初の挿入
  • 1 - 2 回目のドロップ
  • 1 - 部分 ddl
  • 1 - 挿入からの最初のステートメント (2 番目のステートメントはエラーであるため、3 番目のステートメントは実行されません)

不適切なステートメントからエラー メッセージが表示されないのはなぜですか?

これは私にとって大きな問題です。例外がスローされないため、トランザクションがロールバックされず、最終的に 1/3 のレコードしか挿入されないからです。私はそれがすべてか無かである必要があります。

Microsoft® ODBCを使用して Microsoft SQL Server 2012 (SP3) (KB3072779) - 11.0.6020.0 (X64) に接続する PHP 7.0.8-0ubuntu0.16.04.3 (cli) ( NTS ) で Ubuntu Linux 16.04.1 を実行しています。 SQL Server® 用ドライバー 13 (プレビュー)

0 投票する
1 に答える
596 参照

odbc - Apache Ignite - [PDOException] SQLSTATE[IM002] SQLConnect: 0 [unixODBC][Driver Manager]データソース名が見つからず、デフォルトのドライバーが指定されていません

Apache ignite をセットアップし、データを Java アプリから ignite にロードし、残りの API を使用してクエリを実行できます。PHPからクエリする必要があるので

pdo_odbc を使用して PHP から Apache Ignite に接続しようとしています。私は持っている、

i) インストールされた ODBC ドライバー マネージャー - http://www.unixodbc.org/

ii) 構築された ODBC ドライバー http://apacheignite.gridgain.org/docs/odbc-driver#section-building-on-linux

iii) インストールされた Ignite ODBC ドライバーhttp://apacheignite.gridgain.org/docs/odbc-driver#section-installing-on-linux

iv) 構成された dsn、http://apacheignite.gridgain.org/v1.8/docs/connecting-string#configuring-dsn を使用して

odbcinst -j

猫 /etc/odbcinst.ini

猫/etc/odbc.ini

猫 /home/me/.odbc.ini

v) インストールされた pdo_odbc、

phpinfoに表示されます。

vi) を使用して OdbcConfiguration を有効化

vii)

私はまだこの例外を受けています。

更新: LD_LIBRARY_PATH には既に /usr/local/lib ls /usr/local/lib | があります。grep libignite-binary-1.8.0.16166.so.0

ldd /usr/local/lib/libignite-odbc.so

linux-vdso.so.1 => (0x00007ffe68521000) libignite-binary-1.8.0.16166.so.0 => 見つかりません

0 投票する
1 に答える
124 参照

php - Java からデータをロードして php pdo_odb から点火し、読み取る - 「[unixODBC] メッセージ ヘッダーを受信できません」

ignite と pdo_odbc をセットアップしました。データを ignite にロードでき、すべてが Java から動作しています。

PHP からデータにアクセスする必要があるため、pdo_odbc をセットアップしました。

例外が発生しています

[PDOException]
SQLSTATE[HYT01] SQLConnect: 0 [unixODBC] メッセージ ヘッダーを受信できません

これは私の ~/.odbc.ini 構成です

別のポートを構成しようとしましたが、一部のポートではホストに接続できませんでした。48100 の場合、接続できているように見えますが、pdo_odbc はデータを取得できません。

ログのエラー

ignite が開始されたときのログ