問題タブ [dbal]
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.
python - Python 用の軽量 DBAL
私の要件に最適なpython DBALライブラリを誰かに勧めてもらえますか。SQL ステートメントを直接書きたいと思います。ほとんどのロジックは db ストアド プロシージャ (postgresql) にあるため、db プロシージャを呼び出し、引数を渡し、結果を取得するだけで済みます。ライブラリは、引用符を付けるのに役立つはずです(SQLインジェクトを防ぎます)。sqlalchemy で遊んでみましたが、engine.execute メソッドに直接 sql 文を書くとクォートヘルパーが無いと思います。
ありがとうございました
dbal - データベース抽象化レイヤーを使用する利点は何ですか?
私はしばらくの間、phpBBDBALを実装するコードを使用してきました。最近、より完全なパッケージを実装する必要があり、全体でDBALを使用することにしました。主に、それは大丈夫でした。しかし、時々、それを使用する際のロジックがわからない状況があります。単純なものがはるかに複雑になるようです。
SQLステートメントを直接記述するのではなく、DBALにはどのような利点がありますか?
php - PPI フレームワークで Doctrine DBAL を使用した場合の PDO 一般エラー
表の行を更新する準備済みステートメントを実行すると、「HY000 一般エラー」が発生します。クエリは実行されているようで、行は正常に更新されています。私のコードと返されたエラーの詳細を以下に示します。この問題を解決するために誰かが私を正しい方向に向けることができれば、私はとても感謝しています.
コード例:
エラーの詳細:
php - 配列は「IN」ステートメントで文字列としてマスクされています
このDQLを使用する場合
結果の SQL は次の場所にマップされます。
これは明らかに間違っているはずです
したがって、クエリは正しく実行されます。配列を文字列にエスケープせずにマップするようにdoctrineに指示するにはどうすればよいですか?
exception - スキーマ生成時の不明な列タイプ
Symfony2 と Doctrine を使用してアプリケーションを開発しています。問題は、
Role と User Entities のテーブルを を使用して作成しようとすると発生しますphp app/console doctrine:schema:update --force
。関係は ManyToMany であり、マッピング情報、注釈は正しいように見えますが、次の例外がスローされます。
[Doctrine\DBAL\DBALException] 不明な列タイプの役割が要求されました
私に何ができる?どうもありがとうございました。
sql-server - SQL 更新ステートメントの二重の結果
私はすでに数時間これで頭を悩ませてきました... これが起こっていることです:
私はこの声明を実行します
SELECT STATUS FROM [dbo].[TMP_TEST_CALL_LIST] where identity = '659303186000000000'
次の結果が得られます (単一行):
「よ」
次に、このステートメントを実行します
update [dbo].[TMP_TEST_CALL_LIST] set status='Z' where identity = '659303186000000000'
そして私はこれを手に入れます!!!:
(1 行が影響を受けます)
(1 行が影響を受けます)
あたかも 2 つのステートメントが実行されたかのように!
しかし、それはさらに悪化します...次のように実行しても:
update [dbo].[TMP_TEST_CALL_LIST] set status='Z' where identity = '659303186000000000' AND status ='Y'
同じ「二重」の結果が得られます。そして、どのレコードにも一致しない WHERE 句を使用して実行すると、影響を受ける行が 0 行であることがわかります... 2 回。
(さらに) 恐ろしいことは、これが DB 内の一部のテーブルで発生していて、他のテーブルでは発生していないことです。テーブルの違いがわかりません。
ヘルプ !! !
ありがとう。
注: これは SQL Server 2008 R2 です
php - 重複したGet_Affected_Rowsで挿入を実行するためのクローンDbal接続
Doctrine DBALを使用していINSERT ... ON DUPLICATE UPDATE
て、リターンが影響を受ける場所で実行したいと考えています。INSERT ... ON DUPLICATE UPDATE
とaffected_rowsはMySQL固有であるため、標準のDbalexecuteUpdateを使用できないようです。そのため、標準で準備されたSQLステートメントを実行する必要があります。
依存性注入を使用して、接続($ this-> connection)をクラスファイルに挿入しています。INSERT ... ON DUPLICATE UPDATE
これらの条件下でaffected_rowsを取得するために、を実行してから2番目のqryを実行することを心配する必要があります。
DBAL接続はページ要求ごとに構築および切断されるため、競合状態は発生していないようです。この場合、私はSymfony2フレームワークを使用していますが、使用しているフレームワークまたはフレームワークなしに関係なく、答えが役立つはずです。
php - Doctrine DBALを使用して、更新の失敗を判断するにはどうすればよいですか?
私は現在、MySQLインターフェース用にDoctrineのDBALライブラリを使用しており、現在、以下を中心に構造を構築しています。
もちろん、影響を受ける行の数を返します。現在の問題は、更新が成功したときにトリガーされる更新後に特定のアクションを実行することです。現在のシステムでは、レコードを「編集」して(フォームのみを表示)、すぐに保存を押すと、上記の更新機能の結果を確認するため、エラーが返されます。これにより、サイトにエラーが表示されるだけでなく、他の「正常な更新」アクションが実行されなくなります。
影響を受ける行の外で更新を実行できなかったかどうかを確認する方法はありますか?これを完全に無視して、更新が常に機能すると想定できますか?致命的なエラーをキャッチするには、例外をトラップするだけで十分でしょうか?
sql - SQL を Doctrine DBAL または createQuery() に変換する
このクエリを Doctrine DBAL クエリに書き換えるか、createQuery() 構造に書き直すにはどうすればよいですか? createQuery() を使用すると、「data_last」が日付として認識されず、文字列として認識され、エラーが発生しました。おそらくより良い解決策は、symfony側で行われる内部左結合と計算でしょうか? ROUND 関数は Doctrine によって認識されません。
php - insert()メソッドを使用してPHP Doctrine \DBAL2でDateTime値を挿入する
Doctrine \ DBALを使用して、PHPのDateTimeオブジェクトをデータベースフィールドの値として渡すにはどうすればよいですか?
$DBはDoctrine\DBAL\Connectionインスタンスです。
上記のコードは機能せず、ドキュメントが不足しています。
別のDBALメソッドを使用してDateTimeオブジェクトを直接提供できることは確かですが、 insert()を使用してこれを行うことは可能ですか?