現在PDOの勉強をしています。
ソースコードを見ると
$pdo->setAttribute(PDO::MYSQL_ATTR_USE_BUFFERED_QUERY, true);
というコードが書いてあって色々と調べたのですが、
fetch()を2回使用すると、エラーとなり、その対処として
$pdo->setAttribute(PDO::MYSQL_ATTR_USE_BUFFERED_QUERY, true);
を使っているのかなと思いました。
しかし、このコードはmysqlのみ対応となっていました。
汎用性を考えるともう一つの対処で、fetch allを使った対処の方が良いのかと思ったのですが、どうでしょうか。
fetchAllだと配列の配列となるそうなので、値をどうやって取れば良いのか悩むところです・・・
あとはmysqlの文字コードですが、よく掲載されているのが、my.cnfを設定し直すということが掲載されていますが、
サーバーに依存すると思ったのであまりこの対処は良くないのかなと思ったりしています。
現段階では、sqlquerybrowserなどで、DBを作成の前に、文字コードを設定して対処していますが、いかがでしょうか。
最後に、上記の対応を行っていた場合など、DBを他の文字コードに変更しなければいけない場合はみなさんはどのように対処しますか?
現場での経験がないので、この疑問に答えて頂けると嬉しいです。
A 回答 (1件)
- 最新から表示
- 回答順に表示
No.1
- 回答日時:
fetch は 結果をバッファにおいた状態で行読み
fetchall は 結果全体を取り込むので即リソース開放されます。
fetch で データを所得し終わったら closeCursor などしてあげると
次のSQLを投げられるようになります。
また 単一レコードを所得するSQLでのfetch all の場合は
$result = $res->fetchall()
された場合は $result[0] に fetch したのと同じデータが入ります。
この回答への補足
回答ありがとうございました。
>fetch は 結果をバッファにおいた状態で行読み
fetchall は 結果全体を取り込むので即リソース開放されます。
要するにバッファとはメモリのようなものでしょうか。
fetchallの場合、バッファに置いた状態で読み込むことができないので、
closeCursorが使えないという認識で大丈夫ですか?
Mysqlじゃなくても、
fecth(),closeCursorは使えますよね?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- PHP PHPSpreadsheetによる書き出し時のページネーション方法について 1 2023/03/20 10:35
- PHP DBのハッシュ化したパスワードをpassword_verifyで戻し照合したのですが上手く行きません 2 2023/02/06 13:24
- Excel(エクセル) PHPプログラムをエクセルに張り付けると検索ボックスがでてくる! 3 2022/05/08 07:10
- MySQL あと、MySQLの文字コードはutf8 気になりますね 1 2022/12/01 07:22
- PostgreSQL PostgressからMySQL(MariaDB)へ構造を変更する際のTimestamp等について 2 2023/04/04 12:09
- PHP PHP一覧表示した項目にリンクをはりたい 1 2023/07/12 17:08
- PHP 重複を防ぐ記述について教えて下さい。 3 2023/04/03 14:35
- MySQL SQL任意に並び替えをしたい 2 2023/08/28 10:47
- PHP PHP ページング データベース 1 2022/06/16 10:30
- PHP ここでの ②if($su_d<>"")の比較演算子 を使う理由は 1 2022/03/26 02:33
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
file_existsでファイル名の部分...
-
Smartyの自作プラグインで配列...
-
配列にある文字列を1つの変数に...
-
配列をループでたくさん宣言し...
-
$_SESSIONに二次元配列を使える...
-
チェックボックスが複数選択で...
-
PHPサイトの外部アクセス(チェ...
-
配列を回すとき、最後の要素だ...
-
ネストが深い時のforeachはどう...
-
checkboxの値を取得する方法に...
-
while文について
-
配列をmb_ereg_replaceで一気に...
-
漢字のソートについて
-
あいまい検索
-
総当り表
-
String だと「 ByRef引数の型が...
-
配列同士の足し算のループ処理
-
プルダウンメニューにDBの内容...
-
fgetc関数について
-
バイナリファイルの内容を、そ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
配列をループでたくさん宣言し...
-
file_existsでファイル名の部分...
-
foreachのなかで次のキーを参照...
-
$_SESSIONに二次元配列を使える...
-
String だと「 ByRef引数の型が...
-
配列を回すとき、最後の要素だ...
-
配列一致(要素順番は違うが内容...
-
PHPのカッコ[ ]の使い方について
-
ネストが深い時のforeachはどう...
-
チェックボックス複数選択 mys...
-
PHPで配列をPOSTデータで送った...
-
phpで、連想配列を普通の配列に...
-
PHP 多次元配列変数のデータ受...
-
postgresql関数をつかったレコ...
-
SQL文の実行結果を変数で受けて...
-
【PHP】配列内のある値以上をカ...
-
プルダウンメニューでCSVデータ...
-
Smartyのテンプレートからjavas...
-
CSVデータのn番目だけの値を取...
-
PHP 配列の数をn対nの割合で分...
おすすめ情報