- 1 名前:nobodyさん mailto:sage [2012/01/02(月) 02:03:25.50 ID:???]
- 質問者はまず>>1を良く読むこと(必須!)
過去スレ、関連スレ、FAQなどは>>2-10辺り 次スレは>>980が立てる。10分以内に立たない場合、宣言してから立てたい人が立てること。 ◆前スレ 【PHP】下らねぇ質問はID出して書き込みやがれ 113 kohada.2ch.net/test/read.cgi/php/1322564127/ ◆質問用テンプレ 【OS名】CentOS 【PHPのバージョン】5.3 【連携ソフトウェア】MySQL ImageMagick 【質問内容】 ◆質問する時の注意 ・ スレを上げて自分のIDを表示させること。(メール欄に何も記述しない。専ブラのsageチェックを外す) ・ 己の行った操作、変更などを詳しく明記すること。 ・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。 ・ 質問者として、態度をわきまえること。 ・ 事前に関連リンクの公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。 (PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。) ◆質問後の注意 ・2回目以降は最初に質問した際のレス番号を入れて、偽者防止に必ずIDを表示させること。 ・解決しなくても回答をもらった場合はお礼を言うこと。 (荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。) ◆回答者への注意 ・誰にレスしているのか分からないと困るので、>>(アンカー)をつけて回答すること。 【その他諸注意】 ・SQL・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
- 193 名前:nobodyさん mailto:sage [2012/01/05(木) 00:52:10.76 ID:???]
- >>191
PHPだけじゃ無理なんで、なんか工夫する
- 194 名前:nobodyさん [2012/01/05(木) 00:59:15.22 ID:YvCiXMC9]
- >>193
具体的に方法はありますか?
- 195 名前:nobodyさん mailto:sage [2012/01/05(木) 01:04:20.51 ID:???]
- 具体的にどういう設計を考えてるのか説明してくれないとなんとも言えん
- 196 名前:nobodyさん [2012/01/05(木) 01:07:57.28 ID:YvCiXMC9]
- >>195
ケースバイケースになるくらい難しいことですか?
- 197 名前:nobodyさん [2012/01/05(木) 01:10:10.17 ID:YvCiXMC9]
- ちなみに静的ファイルを作るという手法は試しています。
- 198 名前:nobodyさん [2012/01/05(木) 01:16:29.08 ID:YvCiXMC9]
- >>195
他のサーバーサイド言語では主に3つのスコープがあります。 1.リクエスト 2.セッション 3.アプリケーション 私見だとPHPには1,2相当はありますが3がないので困っているのです。 どうしたらよろしいでしょうか?3がないとすると大幅にパフォーマンスが 変わりかねないので悩んでいるのです。
- 199 名前:nobodyさん mailto:sage [2012/01/05(木) 01:20:01.65 ID:???]
- >>198
>大幅にパフォーマンスが 変わりかねないので悩んでいるのです。 ほう、それは具体的にどういうケースでパフォーマンスの低下が発生するの? 実装次第で回避出来るかもしれんよ。
- 200 名前:nobodyさん [2012/01/05(木) 01:25:30.10 ID:YvCiXMC9]
- >>199
サイトへアクセスする全員が利用するデータがDBにあります。
- 201 名前:nobodyさん mailto:sage [2012/01/05(木) 01:27:30.94 ID:???]
- >>194
自分で書いてるようにmemcachedを使うのではだめなの
- 202 名前:nobodyさん mailto:sage [2012/01/05(木) 01:28:43.46 ID:???]
- >>200
ん?DBにあるものでいいのなら別段困ることはないような。すでに外部依存でしょ
- 203 名前:nobodyさん [2012/01/05(木) 01:29:24.23 ID:YvCiXMC9]
- >>199
たとえば一定期間に1000人がアクセスしたとします。 最低1000回DBへのアクセスが発生します。 データは共通なのだから本来であればDBへのアクセスは1回で よいはずです。
- 204 名前:nobodyさん [2012/01/05(木) 01:32:17.91 ID:YvCiXMC9]
- >>202
基本的にPHPは重いしサーバーのメモリを食うのでできる限り 使用したくないのです。 そこで、jsonなどの静的ファイルに置き換えてjsで読むという方法は 取っていますが、結局サーバーサイドとクライアントサイドで書く必要 があるのでめんどくさいのです。
- 205 名前:nobodyさん mailto:sage [2012/01/05(木) 01:32:25.82 ID:???]
- >>200
それは絶対にDBになくちゃいけないのか? 静的ファイルで出来るなら設計から見直した方がいいだろう。
- 206 名前:nobodyさん mailto:sage [2012/01/05(木) 01:34:30.08 ID:???]
- >>203,204
Webサービス化+キャッシュ(orプロキシ)を使うではダメ?
- 207 名前:nobodyさん mailto:sage [2012/01/05(木) 01:35:26.23 ID:???]
- 補足 サービスはJSONまたは部分的なHTMLを返却するものをつくって。
- 208 名前:nobodyさん [2012/01/05(木) 01:42:34.82 ID:YvCiXMC9]
- >>205
使う側の利便性を考えるとやはりDBです。 やっぱり方法は無いんでしょうね。 memcachedと使うという手法は知っていますが、 PHPの仕組み上ではどうしてもサーバーに負荷がかかってしまう。 アプリケーションスコープがある言語にどうにかして切り替えます。 ありがとうございました。
- 209 名前:nobodyさん mailto:sage [2012/01/05(木) 02:35:16.36 ID:???]
- 新年早々大丈夫か(精神的に)
- 210 名前:nobodyさん mailto:sage [2012/01/05(木) 02:43:39.22 ID:???]
- >>209
くやしいのうwww、くやしいのうwww
- 211 名前:nobodyさん mailto:sage [2012/01/05(木) 03:05:43.15 ID:???]
- >>203>>204>>208
悪いけど究極的にウンコみたいな設計だな。 根本的におかしい。 どうやったらそんな謎設計になってしまうのか詳しく聞きたい。
- 212 名前:nobodyさん mailto:sage [2012/01/05(木) 03:16:02.50 ID:???]
- >>211
代替案をどうぞ
- 213 名前:nobodyさん mailto:sage [2012/01/05(木) 03:17:13.41 ID:???]
- >>211
代替案を出せなかったら>>211がウンコだなwwww
- 214 名前:nobodyさん mailto:sage [2012/01/05(木) 03:19:25.31 ID:???]
- >>211
さあ、どうでるか。ヒヒヒwwww。
- 215 名前:nobodyさん mailto:sage [2012/01/05(木) 03:23:45.71 ID:???]
- なるほど、つれなかったときはこうなるのか…
- 216 名前:nobodyさん mailto:sage [2012/01/05(木) 03:24:40.47 ID:???]
- >>211
「おかしなコードを書くことを助長する言語」 by まつもとゆきひろ ヒヒヒwwww。
- 217 名前:nobodyさん mailto:sage [2012/01/05(木) 03:25:36.35 ID:???]
- >>211
なんでおかしなコードになるんでしょうか? ヒヒヒwwww。
- 218 名前:nobodyさん mailto:sage [2012/01/05(木) 03:25:37.26 ID:???]
- >>212>>213>>214
そうあわてんなって。 こんなウンコみたいな設計で動いてるサイトの詳細ってお前らも知りたくないか? 本人が来たら詳しく聞いてみようぜ。
- 219 名前:nobodyさん mailto:sage [2012/01/05(木) 03:26:40.76 ID:???]
- >>218
もういいから早く代替案を答えて。 ヒヒヒwwww。
- 220 名前:nobodyさん mailto:sage [2012/01/05(木) 03:27:43.85 ID:???]
- >>218
ねぇ、質問していい? なんどfacebookって今C++になったの? ヒヒヒwwww。
- 221 名前:nobodyさん mailto:sage [2012/01/05(木) 03:28:57.55 ID:???]
- >>215
そういいながら、釣られたお前。 ヒヒヒwwww。
- 222 名前:nobodyさん mailto:sage [2012/01/05(木) 03:30:09.30 ID:???]
- >>211
代替案まだ? ヒヒヒwwww。
- 223 名前:nobodyさん mailto:sage [2012/01/05(木) 03:33:34.93 ID:???]
- こりゃ、だめだ。
レベル低すぎ。
- 224 名前:nobodyさん mailto:sage [2012/01/05(木) 03:38:42.21 ID:???]
- >211
「PHPはおかしなコードを助長する言語」 同意だよね。ヒヒヒwwww。
- 225 名前:nobodyさん mailto:sage [2012/01/05(木) 03:39:35.00 ID:???]
- >>220
facebookってCじゃなくてC++採用したんだ?
- 226 名前:nobodyさん mailto:sage [2012/01/05(木) 03:41:49.18 ID:???]
- >>225
HipHop for PHP 言語の選択に間違えたfacebookの苦肉の策。
- 227 名前:nobodyさん mailto:sage [2012/01/05(木) 03:43:26.68 ID:???]
- >>211
ねぇ、まだ?
- 228 名前:nobodyさん mailto:sage [2012/01/05(木) 03:46:05.91 ID:???]
- >>226
あらあらなるほど ちゃっちゃと作る分にはPHPは楽だからな。 人が集まった時点で作り直せばよかったんだろうけどなぁ。
- 229 名前:nobodyさん mailto:sage [2012/01/05(木) 03:47:09.77 ID:???]
- って、それ自体がfacebookの成果物だったんだな。
無知ですまんかった。
- 230 名前:nobodyさん mailto:sage [2012/01/05(木) 03:50:18.84 ID:???]
- >>226
そんなわけがわからないものを作るよりは 初めからC++で作っとけば良かったんだ。 HipHopにしてもネイティブのC++に比べると オーバヘッドがあるわけでムダだよね。
- 231 名前:nobodyさん mailto:sage [2012/01/05(木) 03:56:56.20 ID:???]
- >>230
まったくだな まあこっちのほうが遙かにわけわからないけどねw >>203 >>204 >>208
- 232 名前:nobodyさん mailto:sage [2012/01/05(木) 03:58:28.05 ID:???]
- >>230
C++で作ったからといって、1000ユニークアクセスに対して1000DBアクセスが発生しなくなるわけじゃあないからな。 なんの工夫もなしにそれは変わることはない
- 233 名前:nobodyさん mailto:sage [2012/01/05(木) 04:44:02.06 ID:???]
- すげー自演だなw
- 234 名前:nobodyさん mailto:sage [2012/01/05(木) 04:50:42.28 ID:???]
- 自演としても成立してないよ
HipHopはPHPの開発ツールとしての優位性が強まる、つまり「PHP最強だろ!」って話だからね PHP憎しで完全に狂ってるけど、はたから見ると面白い
- 235 名前:nobodyさん mailto:sage [2012/01/05(木) 08:46:23.61 ID:???]
- >211
もういいから早く代替案を答えて。
- 236 名前:nobodyさん mailto:sage [2012/01/05(木) 08:57:14.69 ID:???]
- >>234
C++で作ったからといって、1000ユニークアクセスに対して1000DBアクセスが発生しなくなるわけじゃあないのに、 なぜHipHopで「PHP最強だろ!」になるのですか?
- 237 名前:nobodyさん mailto:sage [2012/01/05(木) 09:06:53.72 ID:???]
- >>232
PHPってそんなこともできないの?
- 238 名前:nobodyさん mailto:sage [2012/01/05(木) 09:14:31.17 ID:???]
- 一人で一生懸命ごくろうさん
よく死にたくならないなと感心するよ
- 239 名前:nobodyさん mailto:sage [2012/01/05(木) 09:22:13.73 ID:???]
- >>238
もういいから早く代替案を答えて。
- 240 名前:nobodyさん [2012/01/05(木) 11:42:14.54 ID:ACIe1UJA]
- 標準関数を自分で定義したものに置き換える方法ありませんか。
- 241 名前:nobodyさん mailto:sage [2012/01/05(木) 11:48:53.94 ID:???]
- PHPのソース書き換えてビルドかな
じゃなければmyTrim()とかmyPhpinfo()みたいにプレフィックスでも付けて差別化するしかない
- 242 名前:nobodyさん [2012/01/05(木) 11:55:13.54 ID:ACIe1UJA]
- ソース書き換えなしで不具合の出る関数の動作を修正したかったのですが。
PHPコードからではできないですか。 諦めて別名でやってみます。
- 243 名前:nobodyさん mailto:sage [2012/01/05(木) 12:05:52.58 ID:???]
- >>230
それはC/C++ソースをコンパイル時にアセンブラ出力して書き換えるようなもの。 無駄をなくすとすれば機械語、アセンブラにたどり着く。 しかし開発効率からそのあたりには手を出さず、PHPやC/C++のコードの範囲でできる事をした方が良い。
- 244 名前:nobodyさん mailto:sage [2012/01/05(木) 12:15:28.46 ID:???]
- いま荒らしてる人ってMatzを「まともと」「まともと」って言ってた人か
Matzも知らないから素人なんだろうと思ってたけど納得だわ>>218 facebook級のサイトのを運営してるSEというなりきり設定がワロタ PHPの高速化に HipHop vs APC てのがあるみたいだけど 現時点でほとんど性能は変わらないようだし安定性の面でAPCに軍配が上がるのかな。 サクッと作って高速で動かすという技術はPHPが先を行ってる感じ blog.candycane.jp/archives/491 dsas.blog.klab.org/archives/51978647.html
- 245 名前:nobodyさん mailto:sage [2012/01/05(木) 12:28:51.85 ID:???]
- HIPHOPの実行ファイルはPHP上で動くんじゃないだろ。
どれだけPHPが高速化できたとしても、リソースの少なさ、速度の速さではネイティブ実行形式が上だろ。
- 246 名前:nobodyさん [2012/01/05(木) 12:43:16.59 ID:WqkweKyi]
- 結局のところ、アプリケーションスコープの代替ってみなさんどうされています?
- 247 名前:nobodyさん mailto:sage [2012/01/05(木) 12:50:18.95 ID:???]
- ニートが目覚めたな
- 248 名前:nobodyさん mailto:sage [2012/01/05(木) 12:52:26.30 ID:???]
- いい歳して可哀想なもんやで
- 249 名前:nobodyさん mailto:sage [2012/01/05(木) 12:57:19.29 ID:???]
- Javaで挫折したニートのオッサンだろう
シングルトン・マルチスレッド・アプリケーションスコープ、全部理解してないからな
- 250 名前:nobodyさん mailto:sage [2012/01/05(木) 13:02:42.94 ID:???]
- まぁプログラマーはここにいるおっさんのように池沼になるリスクをはらんでるよな
精神病むには最適な職種と言える
- 251 名前:nobodyさん [2012/01/05(木) 14:48:43.61 ID:r8xFdMd/]
- 配列のキー指定で
$ary[expr1 ? expr2 : expr3]ってしたとき expr3の結果を$ary[]にする方法ってないよね ちなみにnullや''は空文字列で[]とは違う
- 252 名前:nobodyさん [2012/01/05(木) 14:56:30.73 ID:FPSYlk7p]
- あるソースを読んでいる中で
class SQLというのがありまして function getRecord($limit = NULL, $offset = 0) { if ($limit) return array_slice($this->record, $offset, $limit); else return $this->record; } というファンクションがあったんですが、 $this->record;のrecordが何を指しているかがわかりません。 recordてもともとPHPに用意されているファンクションなんでしょうか?
- 253 名前:nobodyさん mailto:sage [2012/01/05(木) 14:57:37.19 ID:???]
- だれか翻訳頼む
- 254 名前:nobodyさん mailto:sage [2012/01/05(木) 14:58:56.94 ID:???]
- class SQLのメンバ
- 255 名前:nobodyさん mailto:sage [2012/01/05(木) 15:09:18.10 ID:???]
- $this->の時点で気付こうよ
- 256 名前:nobodyさん mailto:sage [2012/01/05(木) 15:09:19.83 ID:???]
- 一回PHPのクラスで何が出来るか勉強してくるべき
- 257 名前:nobodyさん mailto:sage [2012/01/05(木) 15:20:05.60 ID:???]
- クラスを知らないか、理解していない人の相談なんです。
- 258 名前:nobodyさん [2012/01/05(木) 15:22:06.79 ID:FPSYlk7p]
- すみません。クラスをちゃんと理解していませんでした
class SQLの中にrecordというファンクションがなかったので もともと用意されている何かだとおもったのですが ググってもでてこなかったので聞いてみました。 まだよくわかっていないのでちょっとクラスについて調べてきます
- 259 名前:nobodyさん [2012/01/05(木) 15:25:35.51 ID:yQXwn+vl]
- DBを使ったサービス作るんだけど、
DB操作しやすいライブラリとかでおすすめないかな? プログラム自体は大したことないのに、 テーブルやらカラムやらを大量に作らなきゃいけない予定なんで、 SQLで書くのめんどくさいから、 ソースコードだけで片付くものを探してるとこなんだけど
- 260 名前:nobodyさん mailto:sage [2012/01/05(木) 15:26:13.26 ID:???]
- もっと頭を柔らかくしようよ
$this->recordが必ずしもファンクションとは限らないのにファンクションと決めつけてるだろ そんなことだといつまでも謎のままだぞ >if ($limit) return array_slice($this->record, $offset, $limit); これ見たらあー配列なんだなってわかるし つーことは、名前からしても$this->recordにはどこかでSELECTの結果かなにかを配列としてセットしてるメンバだとわかるだろう
- 261 名前:nobodyさん mailto:sage [2012/01/05(木) 15:26:51.23 ID:???]
- >>258
recordというデータメンバもないですか。 親クラスがあればそちらにも
- 262 名前:252 [2012/01/05(木) 15:29:33.28 ID:FPSYlk7p]
- class SQL {
private $count = 0; private $host = "localhost"; private $error = null; protected $link = null; protected $record = null; function connect() { $this->link = mysql_connect($this->host, "???", "?????"); if (!$this->link) return false; if (!mysql_select_db('recnomi', $this->link)) return false; return true; } function disconnect() { mysql_close($this->link); } function getRecord($limit = NULL, $offset = 0) { if ($limit) return array_slice($this->record, $offset, $limit); else return $this->record; }
- 263 名前:nobodyさん mailto:sage [2012/01/05(木) 15:30:55.18 ID:???]
- >>259
そーゆーことならフレームワークのスレへ ただSQL書かないで最適なクエリを発行することはまず無理だと思う DB抽象化ライブラリがインデックスまで把握して最適なクエリを発行してくれるものがあればオレも欲しい
- 264 名前:252 [2012/01/05(木) 15:31:28.29 ID:FPSYlk7p]
- ソースは262なんですけど
5行目のprotected $record = null で定義しているからしたで使えているということなんですか?;
- 265 名前:nobodyさん mailto:sage [2012/01/05(木) 15:31:53.77 ID:???]
- >>262
>protected $record = null; メンバとして定義されてるじゃん
- 266 名前:nobodyさん mailto:sage [2012/01/05(木) 15:33:04.94 ID:???]
- >>264
まぁいい とりあえずクラスってなぁに?どう使えてどう動くの?ってことを30日間勉強して
- 267 名前:252 [2012/01/05(木) 15:35:46.96 ID:FPSYlk7p]
- そうですか。。。
$this->recordでrecordに$がついてなかったので ファンクションだと思ってました。。 勉強してきます
- 268 名前:nobodyさん mailto:sage [2012/01/05(木) 15:36:05.47 ID:???]
- >>263
了解 おもしろそうだから、一回自作できるか挑戦して、それでもダメだったらどこかのFW探してみます
- 269 名前:nobodyさん mailto:sage [2012/01/05(木) 15:38:38.34 ID:???]
- >>268
使う機能だけを関数化すればよい。 SQLはコマンドラインでも動作する。難しければそこからやってみてそのあとPHPにするというのもある。
- 270 名前:nobodyさん mailto:sage [2012/01/05(木) 15:44:23.54 ID:???]
- >>269
何言ってるのこのひと すごく的外れ
- 271 名前:252 [2012/01/05(木) 15:45:28.44 ID:FPSYlk7p]
- すみません。最後に一個ききたいんですが
5行目のprotected $record = nullでは配列が入っていないとおもうんですが recordには配列はどうやって入れているのでしょうか?
- 272 名前:nobodyさん mailto:sage [2012/01/05(木) 15:50:04.64 ID:???]
- $this->recordやrecordでソースを検索したら代入しているところが出てくる。
- 273 名前:262 [2012/01/05(木) 15:51:51.85 ID:FPSYlk7p]
- ありがとうございます。もう一度調べてみます
- 274 名前:nobodyさん mailto:sage [2012/01/05(木) 16:09:56.66 ID:???]
- $this->$recordと記述してしまうと、
$recordという変数を探して、 名無しの変数なんてねえよ。とわめいたり、 素知らぬ顔で空データ返してくれるPHPを見てると ちょっと萌えるよね。 こんな技法滅多に使わないけど。
- 275 名前:nobodyさん mailto:sage [2012/01/05(木) 16:19:40.25 ID:???]
- 自分でフレームワークライクなもの書いたりする場合によく使うよ
/hoge/fugaというアクセスはclass hogeのfugaメソッドを実行とかね どんな名前でアクセスしてくるかわからないものを一箇所で処理しようと思ったら便利でしょ
- 276 名前:nobodyさん mailto:sage [2012/01/05(木) 16:26:11.82 ID:???]
- つか、>>262のクラスひどくね?w
>if ($limit) return array_slice($this->record, $offset, $limit); クエリ発行時点でoffsetとlimitつけとけよ… これごっそりレコード取って後から切り出してるだろ とりあえずこんなクソコード捨てちまえ
- 277 名前:nobodyさん mailto:sage [2012/01/05(木) 19:28:56.82 ID:???]
- >>267
ファンションを呼び出すなら$this->record()って書くだろうよ
- 278 名前:nobodyさん [2012/01/05(木) 19:29:38.66 ID:m/6w1Eth]
- mysql_queryに、複数のクエリを;で区切って実行したところ、エラーになりました
そこでクエリごとに分けて別々に発行すればOKでした。 phpMyAdminでは;で区切ったクエリを実行できるのですが、 これはphpMyAdmin側で複数のクエリに分割して実行しているのでしょうか? それともこちらのプログラムミスでしょうか?
- 279 名前:nobodyさん mailto:sage [2012/01/05(木) 19:31:31.15 ID:???]
- プログラムミス
- 280 名前:nobodyさん mailto:sage [2012/01/05(木) 19:40:52.08 ID:???]
- >>278
今どきただのmysql使うなんて時代後れすぎですね mysqliを積極的に使いなさい そして○○_query系でsqlを実行するのは今すぐやめましょう これからは○○_prepareを使いましょう queryでsql実行してたら業務でやってる人たちに笑われますよ
- 281 名前:nobodyさん mailto:sage [2012/01/05(木) 19:43:07.94 ID:???]
- とりあえずマニュアル嫁
www.php.net/manual/ja/function.mysql-query.php mysql_query() は、 ひとつのクエリを送信します (複数クエリの送信はサポートしません)。
- 282 名前:nobodyさん mailto:sage [2012/01/05(木) 19:45:35.06 ID:???]
- >>279
適当にいうな >>280 ありがとうございます >>281 クエリのパースってmysql側でやるものだと思ってたのですが そういうものなのですか ありがとうございました
- 283 名前:nobodyさん mailto:sage [2012/01/05(木) 19:46:47.22 ID:???]
- >>280の言うようにmysqliのほうが速いしなにかと捗るぞ
mysqliのmulti_queryはマルチクエリ実行できるよ ただ得意気に >そして○○_query系でsqlを実行するのは今すぐやめましょう >これからは○○_prepareを使いましょう とか言ってると笑われるから注意な すべてケースによるから自分で最適なコーディングを探すこと エスケープやアプリに合わせたサニタイズも考えながらやって
- 284 名前:nobodyさん mailto:sage [2012/01/05(木) 19:47:41.25 ID:???]
- 適当だったが、Sqlite3、PDOの関数では複数行の一括処理できるが。
Sqlite2の古い関数使うからダメなんだ。
- 285 名前:nobodyさん mailto:sage [2012/01/05(木) 19:50:55.00 ID:???]
- >>284
何言ってるのこのひと SQLite関係ないでしょ PDOの話もしてないし
- 286 名前:nobodyさん mailto:sage [2012/01/05(木) 19:53:46.88 ID:???]
- ○○_prepareはわずかに速くなるだろうが大差ない。
ボトルネックでないだったら直に送信した方がソースは短くて済む。 決定的な差になるのはトランザクション指定。
- 287 名前:nobodyさん mailto:sage [2012/01/05(木) 19:54:50.31 ID:???]
- ほんとだ。データベースは主にSqliteを使うからそれだけの様な気になってた。
- 288 名前:nobodyさん mailto:sage [2012/01/05(木) 19:55:28.06 ID:???]
- ↑
バカだwwwwwwwwwwww prepare使うのは速度のためじゃねえよwwwwwwwwwwwww
- 289 名前:nobodyさん mailto:sage [2012/01/05(木) 19:58:19.19 ID:???]
- だからケースによるだろう
そもそもprepareは速く実行するためのものじゃねーし エスケープを機械的にほぼ保証してくれるから使えるところでは極力使うべき おまえ>>269,>>284だろ ずっと明後日の方向見ながらレスしてるぞ 知ったかぶりにも程があるぞ
- 290 名前:nobodyさん [2012/01/05(木) 21:07:49.16 ID:m/6w1Eth]
- mysqliについて調べ始めました
二種類のモードのうちMYSQLI_USE_RESULT というのが、従来のmysqによる結果セットと同じなのかなと思うのですが php.net/manual/ja/mysqli.use-result.php クライアント側で 大量の処理を行う際は、mysqli_use_result() を 使用すべきではありません。 なぜなら、この関数はサーバとの接続を保持 し続け、取得しているデータに関連するテーブルについて、 他のスレッドから 更新ができなくなるからです。 と書いてありました。 これは接続が保持されている間はテーブルがロックされるということでしょうか? 結果セットはテーブルとは別の領域に作成されるのだから奇妙な処理に思えますが どういうことなのでしょう 今までのmysql関数でも、接続が保持されている間はテーブルがロックされていたのでしょうか?
- 291 名前:nobodyさん mailto:sage [2012/01/05(木) 21:17:34.84 ID:???]
- >>290
これ >バッファに取得しないで結果オブジェクトを返します。 エラー時には FALSE を返します。 バッファに取得しないってことはなんらかの方法で現状をキープする必要があるでしょ テーブルロックしてるかどうかしらんけど、してる可能性は高いよ だからバッファリングしてから使うべき(このメソッドはあまり使うべきではない)ってことになるんじゃね
- 292 名前:nobodyさん mailto:sage [2012/01/05(木) 21:19:13.82 ID:???]
- PHPのお馴染み特定厨さん降臨キタ−ーーーーーーー!
- 293 名前:nobodyさん mailto:sage [2012/01/05(木) 21:29:46.87 ID:???]
- >>290
ちなみに >二種類のモードのうちMYSQLI_USE_RESULT >というのが、従来のmysqによる結果セットと同じなのかなと思うのですが こういう変な固定概念的なものは取り払って素直にゼロから学習しなさいな じゃないと自分の思うようにいかないことばかりでイライラすることになるよ 一応mysqliでSELECTを投げる場合の標準的な手順だけ 1. プリペアドステートメントセット 2. クエリ実行 3. 結果オブジェクト取得 4. オブジェクトから結果(レコード)取得 概ねこんな感じ
|

|