問題タブ [pdostatement]

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 投票する
17 に答える
120685 参照

php - PDO 準備済みステートメントから生の SQL クエリ文字列を取得する

準備されたステートメントで PDOStatement::execute() を呼び出すときに実行される生の SQL 文字列を取得する方法はありますか? デバッグ目的では、これは非常に便利です。

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

php - PDOStatement::bindParam data_type パラメータのリスト

で使用できるすべての data_type パラメータを説明したリストはありますPDOStatement::bindParam()か? ない場合は、通常何を使用し、どのタイプのフィールドに使用しますか?

PHP マニュアルによると: data_type PDO::PARAM_* 定数を使用したパラメーターの明示的なデータ型。

PDO::PARAM_INTとについて知っていPDO::PARAM_STRます。聞いPDO::PARAM_LOBたことはありますが、それをいつどのように使用するかはわかりませんでした。(デート用?)

0 投票する
5 に答える
15930 参照

php - PHP PDOStatement: 配列のキーとして最初の列として行を取得します

PDOStatementデータベースのクエリに使用しています。$row[0]返された行を取得するたびに、 をキーとして配列にフェッチし、行の後続の要素を値として取得したいと考えています。

foreachもちろん、以下のように、ループと条件の組み合わせを記述ifしてジョブを実行することもできます。

しかし、私は既存の方法を探しています。そのような方法はすでに存在しますか?

なぜ質問を再開したのですか。

ここで問われているのは、明らかに PDO::FETCH_GROUP|PDO::FETCH_ASSOC の組み合わせです。PDO::FETCH_KEY_PAIR は、2 列の結果でのみ機能します。ただし、ここでの例は、すべての状況ではなく、問題のコードを単純化するためだけの 2 列の結果です。

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

php - PHP:オブジェクトを継承されたクラスにキャストする方法は?

PDOStatement クラスを継承して、Web サイトのスクリプトで使用したいと考えています。

しかし、必要なオブジェクトを取得する方法に不満があります。PDO::query は、直接の PDOStatement オブジェクトのみを返し、PDOStatement オブジェクトまたは継承されたクラスを作成する方法は他にないように見えます。

最初は、PDOStatement オブジェクトを継承クラスのコンストラクターに移動することを考えました。

ただし、PDOStatement のインスタンスを継承オブジェクト (Messaging_Collection) にする方法。それは私にとって大きな疑問です。

0 投票する
2 に答える
299 参照

php - php PDOStatementfetchAll2回目

私はPDOStatementのポイントを本当に理解していません:

2回目のfetchAllがデータを返すが、SQLを再度実行しないようにするために渡す必要のあるパラメーターはありますか?

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

pdostatement - PDOStatement を使用する利点は?

通常のMysqlの代わりにPDOStatementを使用することの違い/利点は何ですか?

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

php - 警告: PDOStatement::execute() [pdostatement.execute]: SQLSTATE[23000]:

誰でもこれを手伝ってもらえますか?

警告: PDOStatement::execute() [pdostatement.execute]: SQLSTATE[23000]: 整合性制約違反: 1062 /usr/www/users/firstiw/competitions/facebook/64ongordon/competition のキー 1 のエントリ '127' が重複しています。 php 33行目

0 投票する
3 に答える
4769 参照

php - PDOStatement :: bindValue()で変数タイプをどのように定義しますか?

PDOStatement :: bindValue()メソッドは、バインドされた変数のタイプを指定する方法を提供します。

PDOStatement :: bindValue($ parameter、$ value [、$ data_type = PDO :: PARAM_STR ])

データ型を指定する目的は何ですか?デフォルト(PARAM_STR)のままにすると、データベースは最終的に値を使用する前に適切な型にキャストしますか?

たとえば、INTEGERフィールドに対して次のクエリがある場合:

そして、PHPで整数をバインドすると、PDOはデフォルトでそれを文字列としてバインドします。これは次のように相当します。

SQLデータベース(少なくともMySQL、他のRDBMSでどのように機能するかはわかりません)は、文字列を使用する前に整数に変換する方法を知っているため、これは問題なく機能します。

バインドされた型付きパラメーターと文字列に違いが生じるユースケースは何ですか?

0 投票する
3 に答える
3638 参照

php - PDOStatement オブジェクトをトラバースする方法、つまり fetch first、last before next など?

Web ページでデータに何度もアクセスしようとしています。より良い方法はありますか?movetofirst()、movetolast()、movetoprevious()、movetonext() のようなものがいいかもしれません。

現在、結果セットを配列として取得し(fetchall()を使用)、配列を何度も再利用しています。

以下のようなことはありますか?クエリを何度も実行する必要はありません。結果/配列が数百行の場合、データを配列に保持し、リソースを消費します。

0 投票する
3 に答える
7022 参照

php - 「mysql サーバーがなくなった」エラーで PDOStatement が再接続する PDO

mysql の wait_timeout を超えると、PHP CLI スクリプトで接続が失われます。wait_timeout を変更できないので、PDOStatement を使用してクエリを実行するときに再接続する try/catch ステートメントを作成するにはどうすればよいでしょうか?