問題タブ [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.
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
-
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 ファイルは次のようになります。
これを機能させるために、セットアップで何かが欠けていますか?
sql-server - Eloquent ORM を PDO ODBC SQLServer Laravel5 Framework で使用する方法
雄弁なORM laravel5 PDO ODBC接続を使用してすべてのユーザーを取得するためのクエリを実行しようとしています。
このエラーが発生します
ご覧のとおり、FreeTDS を使用して SQL Server に接続していますが、このドライバーに追加の構成が必要なのか、laravel コアを変更する必要があるのかわかりません。
このエラーの主な問題は、 と を囲むバックスラッシュと\"Users\" and \"email\"
引用符です。この引用符を削除する方法と、laravel がこれを行っている理由を教えてください。Users
email
ただし、これを試してみると
それは完全に機能しますが、これはlaravelでクエリを作成するためのより良い方法ではないと思います.
ご参考までに
Mac OS X EL Capitan、MAMP Server、php 5.6.10、pdo-odbcでlaravel 5を使用しています
php - PDO odbc が不正なハッシュ化されたパスワード文字列を返す
ユーザーのパスワードをSQL Server 2008 R2にハッシュしています。登録はうまくいきます。ハッシュ化されたパスワードは、次のコードによって正しく保存されます。
ログインスクリプトを実行したいときは、次のようにします。
これは常に false を返します。これは、何らかの理由でユーザー情報が電子メールとハッシュ化されたパスワードに問題を抱えて到着しているためです。
最初のクエリで取得したユーザー情報から var_dump() を実行すると、次のようになります。
何らかの理由で、ハッシュ フィールドと電子メール フィールドに問題が発生しています。
助けてくれてありがとう。
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 (プレビュー)
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 => 見つかりません
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 が開始されたときのログ