問題タブ [unbuffered-queries]
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.
php - PDOでexecを実行すると、他のバッファリングされていないクエリがアクティブな間、2014はクエリを実行できません
PDO::exec
複数の更新でコマンドを実行しています:
トランザクション内で実行していますが、次のエラーが発生し続けます。
SQLSTATE [HY000]:一般エラー:2014他のバッファリングされていないクエリがアクティブな間はクエリを実行できません。PDOStatement :: fetchAll()の使用を検討してください。または、コードがmysqlに対してのみ実行される場合は、PDO::MYSQL_ATTR_USE_BUFFERED_QUERY属性を設定してクエリバッファリングを有効にすることができます。
それらは唯一のクエリです
php - MySQLiを使用したバッファなしクエリ?
MySQLiクエリはバッファリングされていませんか?そうでない場合は、MySQLi以外の場合と同様に、バッファなしのクエリを実行する方法はありますmysql_unbuffered_query()
か?
php - 複数のインスタンスがあるページで PDO コネクタを使用できない
私のphpページの上部に、次のように呼び出される接続スクリプトを含めます。
Connector.php
その後、必要に応じて自分のページですべての呼び出しを行います。ただし、特に 1 つのページで、最初に MySQL ストアド プロシージャを呼び出します。
ストアド プロシージャに問題はありませんが、その後の呼び出しを試みたときにページを下に移動すると、通常の PDO Mysql バッファなしクエリ エラーが発生します。
致命的なエラー: キャッチされない例外 'PDOException' とメッセージ 'SQLSTATE[HY000]: 一般エラー: 2014 他のバッファリングされていないクエリがアクティブな間はクエリを実行できません。PDOStatement::fetchAll() の使用を検討してください。または、コードが mysql に対してのみ実行される場合は、PDO::MYSQL_ATTR_USE_BUFFERED_QUERY 属性を設定して、クエリのバッファリングを有効にすることができます。C:\page.php:261 スタック トレース: #0 C:\page.php(261): PDOStatement->execute(Array) #1 {main} が C:\page.php 行 261 でスローされました
はい、FetchAll を使用してみました。いいえ、PDO::MYSQL_ATTR_USE_BUFFERED_QUERY 属性を使用したくありません。後で MySQL をオフにする可能性があり、すべての DB に基づいて再構築したくないからです (言うまでもなく、含めたときは機能しませんでした)。
なぜこれが起こっているのでしょうか?すべての DB 呼び出しの前に connector.php ファイルを「含める」ことができますが、それは繰り返しのようで、すべてのステートメントを $db->NULL にする必要があります。
注: これは、ストアド プロシージャへの呼び出しを含むページにのみ影響するようです。何か案は?
注: これは、Apache 2.2.14、PHP 5.3.1 を実行する XAMPP 1.7.3 を搭載した Windows マシンで実行されています。
php - mysql_unbuffered_query で複数の接続を使用する
2 番目の接続を開くことで、一度に 1 つのクエリを実行するという mysql_unbuffered_query() の制限を回避することは可能ですか?
たとえば、次のコードでエラーが発生します。
mysql_select_db(): 前のバッファリングされていないクエリからすべての行を最初にフェッチせずに呼び出された関数
最後に出力される 2 つの print_r(): Resource id #637Resource id #639
DbManager は古い pear データ アクセス レイヤーです。
注: 私は mysql_unbuffered_query タグを使用していましたが、最近、「新しいタグを作成する特権」を下回る報奨金をオープンしました。
php - MySQL の "Fire-And-Forget" INSERT / UPDATE / DELETE - mysql_unbuffered_query の使用はお勧めですか?
「ファイアアンドフォーゲット」と考えるクエリがかなりあります。
これらは単に挿入、更新などを記録しているという意味で。それほど重要ではなく、ユーザーが目にするフロントエンドで決して使用されないデータ。
これは の理想的なケースのように思えmysql_unbuffered_query
ます。
これは賢明ですか?
innodbを使用しているため、次のようなものを使用することINSERT DELAYED
はできません。
ありがとう!
php - Zend_Db とバッファリングされていないクエリ
バッファリングされていない pdo ステートメントを介して取得しようとする、実行時間の長いクエリがあります (次のコードを参照)。しかし、バッファリングされていないクエリを「実行」するか、「fetchAll」を実行すると、タイミング(以下も参照)は実際にはあまり変化しません...バッファリングされていないクエリを実行してカーソルを与えるだけだと思いましたか?
get_db 関数は Zend_Db オブジェクトを返します。
そしてタイミング:
ご覧のとおり、すべてのフェッチとバッファリングされていないバリアントのフェッチにほとんど違いはありません。
ここで何が間違っているのでしょうか?
ありがとう!
php - mysqli バッファリングされていないクエリ結果を複数回反復する
問題:
大きな結果セットを返すクエリがあります。PHP に取り込むには大きすぎます。致命的なメモリ最大エラーが発生し、メモリ制限を増やすことができません。バッファリングされていないクエリ
配列を複数回反復する必要がありますが、mysqli_data_seek はバッファリングされていないクエリでは機能しません。mysqli_result::data_seek
これらの要件を満たす別のソリューションがある場合は、それを受け入れます: - 単一のクエリで結果を結合しようとしない (時間がかかりすぎる) - 別のクエリで結果ごとにクエリを実行しない (クエリが多すぎる、時間がかかりすぎる)長く、システムが遅くなります)
さらに情報が必要な場合は、コメントを残してください。
ありがとうございました。
php - PDO エラーの原因 他のバッファリングされていないクエリがアクティブな間、クエリを実行できませんか?
次のコードがあります。
ただし、何らかの理由で、2 番目の準備済みステートメントを実行すると、次のエラーが発生します。
致命的なエラー: キャッチされない例外 'PDOException' とメッセージ 'SQLSTATE[HY000]: 一般エラー: 2014 他のバッファリングされていないクエリがアクティブな間はクエリを実行できません。PDOStatement::fetchAll() の使用を検討してください。または、コードが mysql に対してのみ実行される場合は、PDO::MYSQL_ATTR_USE_BUFFERED_QUERY 属性を設定して、クエリのバッファリングを有効にすることができます。
私はこのエラーが何を意味し、それをどのように修正するかを知っています (実行するか、unset($stmt);
または実行$stmt->closeCursor();
します)。私が理解していることから、それは通常、すべての結果を取得するfetch
代わりに行うことによって引き起こされます。fetchAll
ただし、この場合、結果は 1 つしかなく、フェッチされています。また、最初の準備済みステートメントを 1 回だけ実行すると、エラーは発生しません。最初のステートメントが2 回実行された場合にのみ発生します。また、 が の場合にのみ発生しPDO::ATTR_EMULATE_PREPARES
ますfalse
。
私の質問は、この場合に上記のエラーが発生する原因は何ですか? これまでに実行した他のクエリと何ら変わりはないようです。
Debian と CentOS の 2 つの Ubuntu 13.10 サーバーでこれをテストしましたが、デフォルトのパッケージを使用するとすべて同じエラーが発生します。
編集:
Ryan Vincent のコメントに答えるために、私は完全な mysqli 初心者ですが、以下にあるものは上記の例とほぼ同等であると信じています。私が間違っている場合は、私を修正してください。ただし、エラーは発生しないため、PDO のみのエラーのように見えます。