問題タブ [fetchall]
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.
mysql - pythonクエリmysqlは結果をドロップダウン選択に追加しますか?
ボタンを押すと information_Schema の内容を返し、生成されたリストから 1 つのデータベースを選択できるようにコードを開発しようとしています。ボタンを作成してログオンを要求することは問題ではなく、結果を返します。ただし、失敗しています。これまでに作成したコードは次のとおりです。
コードではこれを最初に処理する必要があるため、行data = conn.fetchall()
は括弧に関連するエラーを与えるようですが()
、理由がわかりません。私が見たすべての例にはこの構文がありますか? からの行をタプルに入れる必要があると思いますschema_name
ので、その情報を「ドロップダウン」選択ボックスとして使用できますか? 誰かが似たようなことをしたことがありますか?fetchall()
行を返すことができるまで、ドロップダウンを作成することはできません。現時点では、コマンドが失敗したため、返せるのは行数だけです。
php - PDO FetchAll を PHP メールに
ここで、データベースから現在の情報を取得します...
そして、ここで先週の情報を入手します...
foreach
次に、すべての情報を PHP メール関数に入れるステートメントが必要です。これに沿った何か...
pdo - PDO は Fetch を使用してクエリから最初の行を取得します (最初に FetchAll を使用せずに?)
PHP、PDO を使用してゲーム データベースにクエリを実行し、参加可能なゲームを取得します。Fetch を使用すると、条件を満たす最後の行が返されます。最初の行が必要なので、現在 FetchAll を使用してから、取得した最初の行を調べています。Fetch を使用して、最初の行だけを取得するように指示する方法はありますか。FetchAll を使用すると、必要以上のデータを収集しているように見えます。
私はこれらすべてに非常に慣れていませんが(貿易によるアニメーター)、古いmysqlに頭を悩ませていたので、今では素晴らしいと思われるPDOの使用に移行しました。動作する非同期ゲーム サーバーをゆっくりと構築しています。
これは私のコードです。これは機能しますが、FetchAll を使用しなかった場合、より効率的になるかどうか疑問に思います。
それが理にかなっていることを願っています。どんな助けや知恵の真珠もありがたく受け取られるでしょう. また、PHP および PDO データベース クエリのコーディングを学ぶ上で、Stackoverflow は非常に役立つ Web サイトでした。私はおそらく人生で約4回コーディングを学ぼうとしましたが、最終的にはうまく定着し始めました. これは私の最初の質問です...ジョンに感謝します。
php - pdo fetchAll() は空の array() を返します
データベースから配列を表示するのに役立つ FetchAll() メソッドを取得するために、1 日以上試みてきました。しかし、私の努力はすべて失敗しました。配列を返す print_r() の代わりに、この array() が返されます。親切に、私を助けてください。クラスページのコード:
表示ページのコードは次のとおりです。
php - データベースから配列の値を変更するための PHP 関数
データベースからの値を持つ配列があります
次のようになります。
私がやろうとしているのは、レベルをたとえば 5 (プレイヤー ID = 3) に変更することです。両方のレベル関連の値を変更する必要があります。数値または配列のキーとその位置は、SQL クエリによって異なる場合があります。次の引数を取る関数が必要です: $playerID、$keyName、$value で、適切な値を変更します。
例えば:
変更後の配列は次のようになります。
php - PDOStatement::fetchAll() が遅すぎる
私は非常に遅い PDOStatement::fetchAll() に遭遇しました。私のクエリは 0.1 秒未満で実行されます。また、MySQL ターミナルでは、0.1 秒未満で画面に出力が表示されます。しかし、PDOStatement で fetchAll() を実行するには 2.5 秒かかります。
これは以下を出力します:
よし、真剣に?MySQL コンソールで結果を 0.1 秒未満で取得するにはどうすればよいですか?PHP では、これらの 1000 件の結果をフェッチして単純な配列に入れるのに 2.5 秒かかりますか? さあ、1000個の数字を1つずつ配列に入れる単純なforループは0.001秒かかります...!!! ここで何が欠けていますか?代わりに何を使用できますか? 私はグーグルで検索しましたが、解決策が見つかりません:(事前に感謝します!
編集: fetchAll() の期間は、返される結果の数に関連するだけでなく、$aArgs のサイズにも関連します。引数を送信しないと、結果が 50K であっても fetchAll() は 0.01 秒で返されます。execute() 呼び出しに 47K の引数を与えると、fetchAll() の実行に 120 秒かかります。しかし、これを引き起こすのは大きなクエリ文字列の作成ではありません (ちなみに execute() はそうしませんか?)、同じ 47K の引数ですが、1K の結果への LIMIT には 2.5 秒しかかからないためです...示唆されているように、 EXPLAIN 出力が PDO と MySQL コンソールの使用で同じであることを確認しました。また、MySQL が懸命に動作しているとは思えません。CPU を常に消費しているのは Apache プロセス (したがって PHP) です。また、古い mysql_* インターフェイスを使用すると、結果の取得に 0.03 秒かかります。
背景情報
好奇心旺盛な人のために:
- これはローカルの MySQL 5.5 データベースであるため、リモート サーバーではありません。
- PHP バージョン: 5.4.4。
- ここでの使用例は、システム内に多数のフィルターがあり (1 つのフィルター = 1 つのデータベース クエリ)、ユーザーの好みの順序で実行され、各フィルターが前のフィルター実行から一致するエントリの ID を取得し、残りの一致するエントリの ID を返す必要があります (これが明確であることを願っています)。このように、フィルタは最終的に、すべてのフィルタに一致するデータベース エントリの小さなサブセットを選択するために使用されます。
- 実際には 47,000 件の結果が返されることがありますが、遅延は 2.1 分ですが、クエリの所要時間は 1 秒未満であり、私の場合は許容できません。
- 複数のフィルターを 1 つのデータベース クエリに組み合わせることで、結果の数を大幅に減らすことができることを理解しています。ただし、フィルターはユーザーによって選択され (したがって、組み合わせは無制限)、さまざまなデータベース テーブルで結合とチェックを行うことができ、最後に重要なこととして、各フィルターが返す結果の数に関する統計を表示したいと考えています。