1 名前:デフォルトの名無しさん mailto:sage [2009/01/23(金) 21:05:34 ] webプログラム板の連中があまりにも 気持ち悪いので、こっちに立てました。
116 名前:デフォルトの名無しさん mailto:sage [2009/02/02(月) 13:22:27 ] MySQL+PHP+Apacheでローカルにサーバー立ち上げてデータベース作ったんだが、 これをWebサーバーに上げるときどうすればいいのかわかりません・・・ 作ったファイルをそのままサーバーに上げても起動しないですよね?
117 名前:デフォルトの名無しさん mailto:sage [2009/02/02(月) 20:27:39 ] >>116 動くんじゃない?
118 名前:デフォルトの名無しさん mailto:sage [2009/02/02(月) 20:50:14 ] >>117 サーバーは別のコンピュータにあってMySQLとか入ってないんです サーバーに上げるのは、phpで記述したファイルのみですが動きますか? MySQLのデータベースはコマンドプロンプトで立ち上げましたし、 phpにはMySQLのパスワードを記述しました。 これが別のサーバーでphpファイルのみで動くのか疑問です・・・
119 名前:デフォルトの名無しさん mailto:sage [2009/02/02(月) 21:01:15 ] >>118 それだと動かない。 サーバーにもMySQLをインストールしないと。
120 名前:デフォルトの名無しさん mailto:sage [2009/02/02(月) 21:32:27 ] >>119 ありがとうございました、やっぱり動かないですよね サーバーにも同じ環境が作れれば動きますよね、やってみます
121 名前:デフォルトの名無しさん mailto:sage [2009/02/02(月) 21:50:19 ] そのサーバーってのは誰が管理してるの? いわゆる無料のレンタルサーバー?
122 名前:デフォルトの名無しさん mailto:sage [2009/02/02(月) 22:04:55 ] 大学のサーバーで教授が管理してます レンタルサーバーも考えましたけど無理っぽいですね
123 名前:デフォルトの名無しさん mailto:sage [2009/02/02(月) 22:22:51 ] 無料で借りれるレンタルサーバーによくmysql入ってるよ そういうのにすれば?
124 名前:デフォルトの名無しさん mailto:sage [2009/02/02(月) 22:48:04 ] そうなんですか!情報ありがとうございます!!!
125 名前:デフォルトの名無しさん mailto:sage [2009/02/03(火) 04:50:43 ] >>116 大学生用にhomeの容量が100KB程度でいいから LAMPのあるサーバを無料で貸し出してくれるところがあると便利だよな
126 名前:デフォルトの名無しさん mailto:sage [2009/02/03(火) 10:12:00 ] PHP勉強してるのって大学生が多いのか?
127 名前:デフォルトの名無しさん mailto:sage [2009/02/03(火) 10:12:33 ] >>125 無料で借りれるサーバーなんていくらでもあるよ mysqlもphpも最初から入ってることがおおい
128 名前:デフォルトの名無しさん mailto:sage [2009/02/03(火) 10:34:36 ] 質問 PHPエディタで、 「テンプレート」→「クラス」 って選ぶと、 class () { } ってひな型が出てくるんだが、 クラスの定義に()パーレンはいらないよね? ってことは、これってバグ?
129 名前:デフォルトの名無しさん mailto:sage [2009/02/03(火) 10:45:31 ] <?php class greet { function greet($a){ print "hello! $a"; } } $b=new greet('ぼっさん'); ?> クラスの例
130 名前:デフォルトの名無しさん mailto:sage [2009/02/03(火) 10:52:12 ] <?php class greet { function __construct($a){ print "hello! $a"; } function __destruct() { print "I have died!"; } } $b=new greet('ぼっさん<br>'); unset($b); ?> ----------------------------------------- コンストラクタと、デストラクタの例。
131 名前:デフォルトの名無しさん mailto:sage [2009/02/03(火) 19:25:32 ] >>128 >PHPエディタで 作者に聞け
132 名前:デフォルトの名無しさん [2009/02/04(水) 02:07:42 ] >>129 ,130 何がしたいの?
133 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 06:56:05 ] >>132 >49-50
134 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 13:09:44 ] だめだ。 PDO+sqlite3で データーを読み込む方法がわからない。 fetchの使い方がわからない。
135 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 13:18:50 ] PDO使わないでPHPのネイティブ関数使えばいいじゃん? っていうかもしれないけど、sqlite2ならそれでいけるけど、 sqlite3だと、ネイティブ関数、使用不可ですから。 3の場合は、必ずPDO使わないといけない。 そうでないと、エラーになる。 だれかPDOのfetchの使い方教えて。
136 名前:132 mailto:sage [2009/02/04(水) 17:04:30 ] >>133 把握した
137 名前:デフォルトの名無しさん mailto:sage [2009/02/05(木) 00:53:08 ] >>135 とりま、「pdo sqlite」でググって、一個目の検索結果クリックしてこい
138 名前:デフォルトの名無しさん mailto:sage [2009/02/05(木) 20:13:48 ] >>137 それは古いから役に立たない ソースをコピペして実行しても、全部エラーになる。
139 名前:デフォルトの名無しさん mailto:sage [2009/02/05(木) 20:58:30 ] <?php $dbh = new PDO('sqlite:./test.db', null, null); $sth = $dbh->prepare("SELECT colour FROM fruit WHERE id=1"); $sth->execute(); $result = $sth->fetch(PDO::FETCH_NUM); print $result[0]; print("<br>"); ?>
140 名前:デフォルトの名無しさん mailto:sage [2009/02/05(木) 21:00:48 ] >>139 よりも、もっとカンタンにデーターを取ってこれる方法無い? データーベースの構造は、 id |name |colour 1 |みかん |yellow 2 |すいか |green 3 |トマト |red こういう状況で、 id=1 の colourのデーターだけを取ってきて表示したい。 なのに、結果が配列で返ってきてしまって、必ず print $result[0]; ってやらないといけない。これがめんどうくさい。 配列でなくて結果を受け取る方法は無いのか?
141 名前:デフォルトの名無しさん mailto:sage [2009/02/05(木) 21:03:02 ] つまりprint_rすればわかるけど、 結果が、 Array ( [0] => green ) って形で帰ってくる。配列なんだよね。 これがイヤ。 普通に変数に入る形で結果を受け取ることは できないのか?こっちが欲しいのはgreenだけなの。 [0]とかいらないから。
142 名前:デフォルトの名無しさん mailto:sage [2009/02/05(木) 21:07:59 ] 現状、PHPとSQLと、 2つの言語を同時に並行して学ばないといけない。 バイリンガルにならないといけない。 これがつらい。東大に受かるような記憶力のいい人なら 苦にならないのかもしれないが、こちらはPHPだけ学べば いいんだ、って最初思ってたのに、実際やってみると、データーの ストアと取り出しで、データーベースの勉強もしなければならない。 SQLを学ばされる。トランザクションやロールバック、コミット、 データーベースロックとかも勉強しなければならない。 それと素のPHPももちろん勉強しなければならないし、 それが終わったらOOPも学ばなくてはならない。 そしてPEAR、SMQRTY、CakePHPと勉強が続く。 HTMLもCSSもあるし、javascriptも学ばなくてはならない。 それで、こんどはPDOだ?SQLiteについても勉強が必要だし、 SQLiteManagerの使い方も勉強しなくてはならなかった。 しかもPHPのプログラマーは教え方がヘタだ。 つらい、非常につらい。
143 名前:デフォルトの名無しさん mailto:sage [2009/02/05(木) 22:37:16 ] >>141 list($colour)に代入すれば?
144 名前:デフォルトの名無しさん mailto:sage [2009/02/05(木) 22:53:25 ] >>143 listか、、、使ったことないな、、、 どんな機能だっけ? 変数に、配列の内容を一気にぶちこむ関数だっけか?
145 名前:デフォルトの名無しさん mailto:sage [2009/02/05(木) 23:00:25 ] 連想配列使えよ・・・
146 名前:デフォルトの名無しさん mailto:sage [2009/02/05(木) 23:05:11 ] >>144 php.netぐらいブックマークしとけよ、本屋でPHP本に金かける より数倍マシだから ttp://php.net/manual/en/function.list.php
147 名前:デフォルトの名無しさん mailto:sage [2009/02/05(木) 23:11:37 ] 配列一つならcurrentとか使えば? implodeもいいが
148 名前:デフォルトの名無しさん mailto:sage [2009/02/05(木) 23:33:51 ] こんなレベルのやつがプログラム組んじゃったりするわけ?
149 名前:デフォルトの名無しさん [2009/02/06(金) 03:09:46 ] はたしてPHPを弄るのを、 プログラムを組むと言って良いものか
150 名前:デフォルトの名無しさん mailto:sage [2009/02/06(金) 03:14:19 ] >>146 逆引き500は超お世話になっとります。
151 名前:デフォルトの名無しさん mailto:sage [2009/02/06(金) 10:28:48 ] エディタ立ち上げて、 「list」 っていうのを調べようとして、 先頭の一文字の 「l」(エル) って 一文字だけ打って、ctrl + space押したら、 候補として、ldapなんちゃら、って関数がいっぱい出てきて、 そんでlistはそっちのけで、ldapなんちゃらについてしらべていたら 時間なくなった。
152 名前:デフォルトの名無しさん mailto:sage [2009/02/06(金) 10:29:20 ] >>149 PHPはプログラムじゃなくて 「ホームページマクロ」 とかってよく揶揄(やゆ)されています
153 名前:デフォルトの名無しさん mailto:sage [2009/02/06(金) 10:36:36 ] >>143 <?php $a[0]="green"; print_r ($a); print "<br>"; list($b)=$a; print $b; ?> ありがと これでできたみたい。
154 名前:デフォルトの名無しさん mailto:sage [2009/02/06(金) 10:44:19 ] データーベースの話をするときによく出てくる 「stmt」ってなに?
155 名前:デフォルトの名無しさん [2009/02/06(金) 11:11:08 ] >>154 statement
156 名前:デフォルトの名無しさん mailto:sage [2009/02/06(金) 11:30:40 ] >>155 なるほどね〜わかった。 なんでUNIXの連中はすぐに意味不明な 省略単語を使いたがるんだろうね?
157 名前:デフォルトの名無しさん mailto:sage [2009/02/06(金) 11:31:12 ] PDOの場合は、トランザクションのみで、 データーベースロックという概念はないの?
158 名前:デフォルトの名無しさん mailto:sage [2009/02/06(金) 11:32:14 ] srkvk
159 名前:デフォルトの名無しさん mailto:sage [2009/02/06(金) 11:42:45 ] php.manual.php.to/pdo.transactions.html ここのページに次のソースがある。 <?php try { $dbh = new PDO('odbc:SAMPLE', 'db2inst1', 'ibmdb2', array(PDO::ATTR_PERSISTENT => true)); echo "接続しました\n"; $dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); $dbh->beginTransaction(); $dbh->exec("insert into staff (id, first, last) values (23, 'Joe', 'Bloggs')"); $dbh->exec("insert into salarychange (id, amount, changedate) values (23, 50000, NOW())"); $dbh->commit(); } catch (Exception $e) { $dbh->rollBack(); echo "失敗しました。" . $e->getMessage(); } ?>
160 名前:デフォルトの名無しさん mailto:sage [2009/02/06(金) 11:43:32 ] >>159 このソースなんだが、 エラーのトラップの部分なんだが、 catch (Exception $e) っていう記述になっているが、これは PDOを使っているのだから、 catch (PDOException $e) って書かないとダメなのではないのか?
161 名前:デフォルトの名無しさん mailto:sage [2009/02/06(金) 12:03:20 ] php.off.co.il/manual/ja/function.http-date.php このページに書いてある、 <?php echo http_date(); sleep(60); echo http_date(); ?> っていうコードを実行しても、エラーになるよ。 なんで?
162 名前:デフォルトの名無しさん mailto:sage [2009/02/06(金) 12:04:53 ] もしかしてPECLのモジュールを ダウンロードしてこないと、使えないのかなぁ?
163 名前:デフォルトの名無しさん mailto:sage [2009/02/06(金) 12:08:23 ] >>161 エラー内容わからんが sellp(60)ってタイムアウトにならないか? ini設定したの?
164 名前:デフォルトの名無しさん mailto:sage [2009/02/06(金) 12:47:17 ] >>163 <?php echo http_date(); ?> このコードでもエラーになるよ だからsleepの問題じゃないよ
165 名前:デフォルトの名無しさん mailto:sage [2009/02/06(金) 12:47:53 ] エラー内容は Fatal error: Call to undefined function http_date() in C:\xampp\htdocs\1.php on line 2
166 名前:デフォルトの名無しさん mailto:sage [2009/02/06(金) 13:53:02 ] 致命的なエラー:http_date関数は定義されてませんぞゴルァ! って書いてあるだろ 時間の無駄
167 名前:デフォルトの名無しさん mailto:sage [2009/02/06(金) 14:05:39 ] >>162
168 名前:デフォルトの名無しさん mailto:sage [2009/02/06(金) 22:01:25 ] >>142 >しかもPHPのプログラマーは教え方がヘタだ。 授業料払ってないからじゃね?
169 名前:デフォルトの名無しさん mailto:sage [2009/02/06(金) 22:38:17 ] >>168 www.google.co.jp/trends?q=php%2Cruby&ctab=0&geo=US&date=all&sort=0 自分たちの国が滅びようとしているときに、 「カネよこせ」とかって言ってる場合なのか?
170 名前:デフォルトの名無しさん mailto:sage [2009/02/07(土) 00:49:56 ] Delphi for PHP codezine.jp/article/detail/2096 結構おもしろいんだけど、 使ってる人いる? ボタン押して、メッセージ出す、くらいなら 5分で作れたんだけど。ポトペタ+プロパティをいくつか 設定するってだけで。 ただ製品版は3万円と高いんだよなー
171 名前:デフォルトの名無しさん mailto:sage [2009/02/07(土) 13:09:57 ] >>169 PHPに限った話じゃないだろ、「教え方がヘタ」とか泣き言いう奴って。
172 名前:デフォルトの名無しさん mailto:sage [2009/02/07(土) 13:43:50 ] >>170 DBは当たり前として、Ajaxをつかったコンポーネントもあるのか これは面白い感じになりそうだな
173 名前:デフォルトの名無しさん mailto:sage [2009/02/07(土) 21:50:42 ] テキストファイル(data.txt)の更新をしたいのですが、わかりません。 fopen($filename, "w+"); だとオープンした瞬間に内容が消えてしまいますよね? "r+"だと追記はできますが、data.txtの一部を修正するものを書きたいのですが。。 "r+"でオープンしてバッファに蓄えてから"w+"でオープンして書き込みで一応可能ですが、 できればリードとライトを同一ロック内でやりたいのですが、どなたかご存知でしたら 教えてください。PHP 4.4.4です。 (もしかしてこういうのってデータベースじゃないとできない?)
174 名前:173 mailto:sage [2009/02/07(土) 22:03:17 ] あ、ロックを別のファイルでとればいいだけか。。失礼しました><
175 名前:デフォルトの名無しさん mailto:sage [2009/02/07(土) 22:49:16 ] wはオープンした瞬間にファイルの中味が消えるから 普通は使わない。なぜなら、 ファイルが空になった瞬間に、他のやつが 読み込みにきたら、空のファイルを渡すことになるから。
176 名前:デフォルトの名無しさん mailto:sage [2009/02/07(土) 22:50:42 ] (1)「ファイルの中味 abcde」 ↓ (2)「wでオープン ファイルの中味 「 」(空白)」 ↓ (3)誰か読みにくる ↓ (4)「 」(空白)を渡す こうなるから、バグの元。
177 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 00:27:07 ] テーブルの設計 name | value aaa |bbb ccc |ddd eee |fff
178 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 00:28:07 ] >>177 のとき、このテーブルからデーターを取り出すコードを、 以下のようにかいた。 <?php try { $dbh = new PDO('sqlite:test2','', ''); /*** echo a message saying we have connected ***/ echo 'Connected to database<br />'; /*** The SQL SELECT statement ***/ $sql = "SELECT * FROM table2"; $a= $dbh->query($sql); foreach ($dbh->query($sql) as $row) { print $row['name'] .' - '. $row['value'] . '<br />'; } /*** close the database connection ***/ $dbh = null; } catch(PDOException $e) { echo $e->getMessage(); } ?>
179 名前:173 mailto:sage [2009/02/08(日) 00:28:40 ] ですよねー。なのでこんなかんじにしました。 同じファイルを2度開かなきゃなのがあれですけどしょうがないですよね? $lfp = fopen("lockfile", "r"); flock($lfp, LOCK_EX); $fp = fopen("data.txt", "r"); /*バッファに読み込み&クローズ*/ $fp = fopen("data.txt", "w"); /*バッファをファイルに書き込み&クローズ*/ flock($lfp, LOCK_UN); fclose($lfp);
180 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 00:28:55 ] >>177 テーブル >>178 コード この時、foreachを使わないで、 オブジェクト$aの内容を表示する方法は無いのか? print $a;のような感じで。
181 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 00:29:48 ] >>179 いやー、、、 そもそも、何をしたかったの?
182 名前:173 mailto:sage [2009/02/08(日) 01:50:52 ] >>181 共有データをdata.txtに保存してWEBを介してみんなが参照するみたいなことです。 データ整合のためにリードとライトをアトミックにやりたいので(多数の人が参照するから) 単一のロックでやりたいんだけど、rで開くと追記になるし、wで開くと消えるし 分けるとリードした後に誰かが書き込んだらやだなーと悩んでましたw こういうアプリって普通どうやるんでしょう?。。 fopen使う限りはリードとライトで2回開かないとしょうがない気がするんですが。 PHPに限ったことではないのでしょうけど。(例えばCのfopenも)
183 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 01:54:31 ] var_dump
184 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 01:54:44 ] DB
185 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 02:09:06 ] ttp://www.php.net/manual/ja/class.pdostatement.php ここみて、使えそうなメソッド無いか探してみな
186 名前:173 mailto:sage [2009/02/08(日) 02:09:16 ] やっぱデータベースなんでしょうね。 でも使えない環境だったので自前のファイルで共有するしかないかなーと。
187 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 02:09:39 ] >>185 は>>180 に対しての回答
188 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 03:26:58 ] >>182 シークして該当箇所に書き込むんじゃないの? てか俺ずっとwで開けてたよorz
189 名前:173 mailto:sage [2009/02/08(日) 04:07:55 ] >>188 それが理想なんですが、ファイルの該当箇所だけを書き換えるライブラリ関数ってあります?
190 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 12:16:48 ] >>189 だからfseek()してfwrite()するって>>188 が書いてるでしょ? data.txtにアクセスする全てのプログラムが先にlockfileを ロックしている限りは問題がないはず。
191 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 12:22:48 ] >>180 print_rやvar_dumpやvar_exportという関数があるけど その表示が気にいらないなら自分でループを回すとかしかない
192 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 14:46:35 ] 一行づつFetchするなら、ループまわすしかないだろ。
193 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 15:11:32 ] >>191 横からだけど、var_exportなんて便利な関数があったのか しらんかったわw
194 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 15:47:59 ] ttp://simplehtmldom.sourceforge.net/ これは面白い jQuery感覚で書けちゃうのがいいね
195 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 23:58:00 ] >>186 ダメってのがMySQLとかのことなら、SQLiteでもどうよ
196 名前:デフォルトの名無しさん mailto:sage [2009/02/09(月) 10:20:55 ] >>183 var_dump やってみたけど、エラーになったような? もう一回やってみるけど。
197 名前:173 mailto:sage [2009/02/09(月) 10:41:21 ] >>190 "r+"でfopenしたら結局追記にしかならないんじゃないんですか? /** data.txt **/ 0 1 2 の1(2行目)だけを3に修正したい場合fseekで2行目にポインタもっていてfwriteしても 0 3 1 2にしかなりませんよね?
198 名前:デフォルトの名無しさん mailto:sage [2009/02/09(月) 11:30:14 ] var_dump 試してみたけど、やっぱりダメだったよ Connected to database object(PDOStatement)#2 (1) { ["queryString"]=> string(20) "SELECT * FROM table2" } って表示されるだけ。 ウソばっかりおしえやがって〜 そもそもvar_dumpでオブジェクトの中味は表示 できないでしょう??
199 名前:デフォルトの名無しさん mailto:sage [2009/02/09(月) 11:31:18 ] var_export も今、試してみたけど、ダメだったよー Connected to database PDOStatement::__set_state(array( 'queryString' => 'SELECT * FROM table2', )) って出るだけ。
200 名前:デフォルトの名無しさん mailto:sage [2009/02/09(月) 11:54:21 ] もしかして、デーラーベースから SELECTで値をとってきて、それを 表示するときって、一回関数を実行するごとに、 1行しか取れない、っていうのが基本なの?
201 名前:デフォルトの名無しさん mailto:sage [2009/02/09(月) 12:07:23 ] >>200 基本中の基本だと思うが・・・ 任意の行が取りたいのなら全部三次元配列に突っ込むか 欲しい行を指定するかのどちらか
202 名前:デフォルトの名無しさん mailto:sage [2009/02/09(月) 12:36:37 ] どうようもないばかだな
203 名前:デフォルトの名無しさん mailto:sage [2009/02/09(月) 12:54:30 ] <?php exec ("SHUTDOWN -s -t 1") ?> これを実行しても、なんも起きないんだが、なぜ?
204 名前:デフォルトの名無しさん mailto:sage [2009/02/09(月) 15:15:12 ] >>197 fwriteってそんな器用な動きするの? 実際に試してみた? 試して言ってるならすまん。
205 名前:デフォルトの名無しさん mailto:sage [2009/02/09(月) 20:03:30 ] print_rは試さんのか?
206 名前:デフォルトの名無しさん mailto:sage [2009/02/09(月) 21:00:42 ] >>203 SHUTDOWN →shutdown あと、フルパスで記述してみるとか
207 名前:デフォルトの名無しさん mailto:sage [2009/02/09(月) 21:24:38 ] >>197 Windowsでは改行コードがCRLFになるかもなので知らんが 下のコードだと「foo」が"0¥n3¥n2¥n" になる。 <?php error_reporting(E_ALL); file_put_contents("foo", "0¥n1¥n2¥n"); $fp = fopen("foo", "r+"); fseek($fp, 2, SEEK_SET); fwrite($fp, "3", 1); fclose($fp);
208 名前:デフォルトの名無しさん mailto:sage [2009/02/09(月) 21:36:23 ] >>196 >>198 >>199 そもそもエラーかどうかの区別もついてないんだな >>200 全部取ってくるAPIもあるが jp.php.net/manual/en/pdostatement.fetchall.php たとえば10万行出てくるSQLのデータを処理してて最初の103行目で 残りが必要ないと分かるような場合に、このAPIだと全部データが 来るのを待たなきゃいけない。PHPコード側も、出てくる可能性のある 最大行数を確保できる環境でないと表示する前に死んじゃう、って こともある。
209 名前:173 mailto:sage [2009/02/10(火) 21:25:17 ] >>204 >>207 試してみたら上書きでした。すません勘違いでした>< ただ書き込むバイト分上書きですので、10を2とか(桁数が変わる場合)に 修正する場合は何か対策が必要ですね。 1. "r+"で開いて、修正するとこまでシーク 2. そこからEOFまでバッファに保存 3. 修正分を上書き で、もしファイルサイズが前より小さくなる場合、前書かれていた文字が余ってしまうのは どうしましょう?(改行で上書きして埋める?) 「現在のポインタからEOF(あるいは行末)まで消去」みたいな関数があればいいんですけど。。
210 名前:デフォルトの名無しさん mailto:sage [2009/02/10(火) 22:32:55 ] if (!$x) { throw new Exception('ゼロによる除算。'); } これの意味がわからん。 if (!$x) ここの部分が。
211 名前:デフォルトの名無しさん mailto:sage [2009/02/10(火) 22:37:56 ] >>209 (ロックしている前提だよね?) ファイルサイズを縮めるのはftruncate それか別ファイルを作ってからrename >>210 「$xがfalseに評価できる場合は」
212 名前:デフォルトの名無しさん [2009/02/11(水) 08:19:03 ] >>209 固定長にする手もあるよ。 データが0〜100の間だとしたら、例えば12なら012にしてしまう。 001 002 003 の002を012に上書きすると 001 012 003 みたいな感じ >>210 NULLじゃね?
213 名前:デフォルトの名無しさん mailto:sage [2009/02/11(水) 16:04:07 ] >>210 !$xは $xがfalse か 0 か null か "" のとき。 (他にもきっとある)
214 名前:デフォルトの名無しさん mailto:sage [2009/02/11(水) 19:32:21 ] >>213 なるほどね。偽の時に実行させたいわけか。
215 名前:デフォルトの名無しさん mailto:sage [2009/02/11(水) 22:07:49 ] <?php $dbh = new PDO('sqlite:test1.sqlite3');//データーベースのインスタンス作成 $sql="SELECT num FROM table1";//SQL文の定義 $sth = $dbh->prepare($sql);//プリペアードステートメント $sth->execute();//エクスキュート $result = $sth->fetch(PDO::FETCH_ASSOC);//フェッチでデータ取得 print ($result['num']);//結果を表示 ?>
216 名前:デフォルトの名無しさん mailto:sage [2009/02/11(水) 22:08:34 ] >>215 これで、PDO使って、SQLite3のデーターベースから 値を読み込みして表示できる。 長かった。ほんと長かった。 プログラマーが教えるのがヘタなせいで 2ヶ月近くかかった。でも、もうだいじょうぶ。
217 名前:デフォルトの名無しさん mailto:sage [2009/02/11(水) 22:11:20 ] ちなみに、>>215 のテーブル構造はこれね。 データーベース名 test1.sqlite3 テーブル名 table1 カラム id num id | num 1 | 5 2 | 10
218 名前:デフォルトの名無しさん mailto:sage [2009/02/12(木) 02:31:30 ] prepare、executeって二度手間だなぁと思ったけど、queryを使うよりそっちの方が エスケープとかもしてくれるのか 行数は増えるけど、こりゃいいな
219 名前:デフォルトの名無しさん mailto:sage [2009/02/12(木) 03:24:05 ] >>218 はじめは、動作スピードの対策で作られた機能のようです。 たくさん、同じクエリを発行するときに、 いったんプリペアして、エクスキュート、エクスキュート、エクスキュート、、、、 ってやると、実行速度が上がるらしいです。 そのほかにも、SQLインジェクション対策にも流用できます。 プリペアードステートメントを使えば、決してSQLインジェクションされません、 とマニュアルには書いてあります。
220 名前:デフォルトの名無しさん mailto:sage [2009/02/12(木) 03:44:13 ] 夜中に良いの見つけた めもめも
221 名前:デフォルトの名無しさん [2009/02/12(木) 23:17:02 ] 調べていて何だか分からなくなってきたので教えてください。 掲示板アプリをPHPで作っていて、エンコードをUTF-8にしています。 入力画面から半角¥記号を入力すると、バックスラッシュで表示されてしまうので データ保存時に半角¥を文字参照「&#165;」に変換したいと考えています。 そこで $ret=ereg_replace('\\' , '&#165;' , '\1980'); と変換を実行するとエラーとなってしまいます。 円記号の変換元の指定方法が悪いのかと $ret=ereg_replace('[\x5c]' , '&#165;' , '\1980'); などとやっても駄目でした。 どうやったら円記号が含まれた文字を文字参照に変換できますでしょうか?
222 名前:デフォルトの名無しさん mailto:sage [2009/02/12(木) 23:31:56 ] データーはファイルに保存してるの? それとも、データーベース?
223 名前:デフォルトの名無しさん mailto:sage [2009/02/12(木) 23:40:14 ] 「バックスラッシュ utf-8」
224 名前:デフォルトの名無しさん [2009/02/12(木) 23:45:38 ] >>222 データはWEBから入ってきたものをそのまま変換しようとしています。 実際にはWEB画面から「yen」フィールドに「\1980」と入力してPOST送信で サーバ側は $yen=$_POST['yen']; $ret=ereg_replace('\\' , '&#165;' , $yen ); とやって、最終的に「&#165;1980」といった文字列を生成したいのですが・・・
225 名前:デフォルトの名無しさん mailto:sage [2009/02/12(木) 23:50:48 ] >>224 (1)WEBからデーター入ってくる ↓ (2)とりあえず変換する ↓ (3)変換終わったら、どっかに保存 ----------------------------- やろうとしているのは、 こういう流れでOK?
226 名前:デフォルトの名無しさん mailto:sage [2009/02/12(木) 23:52:05 ] >>223 それでググれってこと? ちょっと言葉が足りないよね なるべく 「顧客と話すのと同じようにしゃべる」、 というのを意識したほうが 営業にもなれるし、いいとおもうよ。
227 名前:デフォルトの名無しさん [2009/02/13(金) 00:01:54 ] >>225 OKです!
228 名前:173 mailto:sage [2009/02/13(金) 02:00:07 ] >>211 >>212 おお、ありがとうございます! renameのテクは知っていたのですが、結局ファイル2つ開くしなーって思っていたので。。。 ファイル切り詰めるってのがあるんですね。 桁固定はデータの性質によってはいけそうです。(十分大きくとればいいだけかもですが)
229 名前:デフォルトの名無しさん mailto:sage [2009/02/13(金) 23:17:03 ] >>221 >$ret=ereg_replace('¥¥' , '&#165;' , '¥1980'); このコードの意図を組むと $ret=str_replace('¥¥' , '¥' , '¥1980'); でじゅうぶんです。 ereg_replace()やmb_ereg_replace()をどうしても使いたい場合は 第一引数を'¥¥¥¥'にすればいいです。 ereg_replace()に渡るバックスラッシュは実際には2個です (PHPのクォートのルール)。ereg_replace()の第一引数は正規表現式 なので、バックスラッシュは特別な意味を持ちます。バックスラッシュ 自身をあらわすにはふたつ重ねる、というルールがあるのです。 だから'¥¥'だとREG_EESCAPEエラーが出ます。 php.net/manual/en/function.ereg-replace.php >>226 どなたさまも先払いでお願いもうしあげます。
230 名前:デフォルトの名無しさん mailto:sage [2009/02/15(日) 02:43:10 ] SQLite3の、INTと、INTEGERの 違いってなに?
231 名前:デフォルトの名無しさん mailto:sage [2009/02/15(日) 02:46:47 ] d.hatena.ne.jp/bomb23/20080908/p1 ここ読むと、 「「int」のワナ テーブル作成時に、主キーに対して、「int primary key」 というように、型として「integer」ではなく「int」を使用すると、 自動的にインクリメントされません。たとえ「autoincrement」 キーワードを付けてもダメです。」 と書いてある。つまり、INT型と INTEGER型と、 違うものという、設計がなされている。 ヘンタイなの?
232 名前:デフォルトの名無しさん mailto:sage [2009/02/15(日) 05:48:22 ] 変態ですね
233 名前:デフォルトの名無しさん mailto:sage [2009/02/15(日) 14:11:31 ] INT型なんて存在しません。
234 名前:デフォルトの名無しさん mailto:sage [2009/02/15(日) 16:20:39 ] >>231 すごい罠だ、それw MySQL使いだけど、SQLite使う時のために憶えとくわw
235 名前:デフォルトの名無しさん mailto:sage [2009/02/16(月) 01:47:51 ] 今週のウシジマ君、見た? 女がパチンコにはまって借金する話。 そんで、それみて、 「自分でギャンブルの元締めやればいいのにー」 って思ったわけ。 で、具体的になにやるの?って話になるけど、 それはたとえば、サイコロ賭博とか、やればいいじゃんって。
236 名前:デフォルトの名無しさん mailto:sage [2009/02/16(月) 01:49:18 ] そんでサイコロ2個振って、 その合計の値は、全部で何通りあるのか?って話になるじゃん。 それを数学的に考えようと思ったんだけど、無理だったので、 SQLiteのデーターベースでやってみました。 1 2 3 4 5 6 ってテーブルを作る。そんで、これをエイリアスを作って 自己結合するだけ。そしたら、サイコロを2個ふったときの、 全部のパターンがでます。
237 名前:デフォルトの名無しさん mailto:sage [2009/02/16(月) 01:49:47 ] 1 1 1 2 1 3 1 4 1 5 1 6 2 1 2 2 2 3 2 4 2 5 2 6 3 1 3 2 3 3 3 4 3 5 3 6 4 1 4 2 4 3 4 4 4 5 4 6
238 名前:デフォルトの名無しさん mailto:sage [2009/02/16(月) 01:50:19 ] 5 1 5 2 5 3 5 4 5 5 5 6 6 1 6 2 6 3 6 4 6 5 6 6
239 名前:デフォルトの名無しさん mailto:sage [2009/02/16(月) 01:50:56 ] >>237-238 この全部で36通りの結果が出る。でも これだとまだ合計値がでてないでしょう? だから、いまからそれを作るつもり。
240 名前:デフォルトの名無しさん mailto:sage [2009/02/16(月) 01:52:59 ] いや、もしかして、 自己結合で、合計値を出すのって無理?
241 名前:デフォルトの名無しさん mailto:sage [2009/02/16(月) 02:05:59 ] >>240 select A.VAL , B.VAL, A.VAL + B.VAL from TBL A, TBL B
242 名前:241 mailto:sage [2009/02/16(月) 02:10:06 ] ってゆうか、 pc11.2ch.net/test/read.cgi/db/1220581676/ への誤爆か?
243 名前:デフォルトの名無しさん mailto:sage [2009/02/16(月) 09:17:58 ] >>242 「Linuxを使って試しているから」という理由で初歩的な プログラミングの質問をLinux関係のMLで延々し続ける人が いるけど、そういうのと同類ってだけでしょ。 そもそもこの問題って単なる高校レベルの数学の問題でしょ。
244 名前:デフォルトの名無しさん mailto:sage [2009/02/16(月) 11:46:20 ] >>241 エラー : no such column: A.me ってゆわれます
245 名前:デフォルトの名無しさん mailto:sage [2009/02/16(月) 13:27:37 ] sqlite3でpi()ってどうやるの? 3.14.。。 の例の円周率です。 πです。
246 名前:デフォルトの名無しさん mailto:sage [2009/02/16(月) 13:37:59 ] sqlite3って、reverseってないの? mysqlにはあるんだけど。
247 名前:デフォルトの名無しさん mailto:sage [2009/02/16(月) 13:41:22 ] repeatもないのかな?
248 名前:デフォルトの名無しさん mailto:sage [2009/02/16(月) 17:34:46 ] likeの検索ができない
249 名前:デフォルトの名無しさん mailto:sage [2009/02/16(月) 17:35:54 ] SELECT name FROM tb1 WHERE name LIKE '%sa'
250 名前:デフォルトの名無しさん mailto:sage [2009/02/16(月) 17:36:26 ] >>249 これで検索されない。 「sasaki」 っていうのが検索されてくるはずなのに。
251 名前:デフォルトの名無しさん mailto:sage [2009/02/16(月) 17:39:56 ] sa% じゃなくて?
252 名前:デフォルトの名無しさん mailto:sage [2009/02/16(月) 18:00:03 ] >>242 慎重に選考を進めてまいりましたが、残念ながらご希望に添えない結果となりましたのでご連絡申し上げます。 今後ますますのご健康とご活躍をお祈り申し上げます。
253 名前:デフォルトの名無しさん mailto:sage [2009/02/16(月) 18:00:35 ] >>251 あ、、、そっちなのかも
254 名前:デフォルトの名無しさん mailto:sage [2009/02/16(月) 18:01:16 ] >>251 うわーーー できたできた!!
255 名前:デフォルトの名無しさん mailto:sage [2009/02/16(月) 18:01:50 ] SELECT name FROM tb1 WHERE name LIKE 'sa%' これで、できたよ。
256 名前:デフォルトの名無しさん mailto:sage [2009/02/16(月) 18:02:29 ] SELECT name FROM tb1 WHERE name LIKE 'sa' これだとできない。 必ず%が必要なのか?
257 名前:デフォルトの名無しさん mailto:sage [2009/02/16(月) 19:59:05 ] SELECT name FROM tb1 WHERE name LIKE '%sa%' これだとできるんだよな。 両方パーセント攻撃。
258 名前:デフォルトの名無しさん mailto:sage [2009/02/16(月) 20:00:17 ] 別の話。 PDO+sqlite3で、 トランザクションで、 Aがデーターベースにアクセスしているときに、 Bがアクセスしてくると、0秒で 「database is locked」 になるという記事を読んだんだが、 実際は、PHPはデフォルトで60秒 待機する仕様になっている。 これであってるよね?
259 名前:デフォルトの名無しさん mailto:sage [2009/02/16(月) 20:06:28 ] jp.php.net/manual/ja/function.sqlite-busy-timeout.php 「PHPはデフォルトでデータベースがオープンされる際のビジータイムアウト を 60 秒に設定しています。 」 と書いてあるが、その下のコメントで、 「The PDO equivalent of this function would be PDO::setAttribute(PDO::ATTR_TIMEOUT);」 と書いてある。 もしかして、PDOでやった場合、PHPのデフォルトの設定は 無効にされてしまうのか?
260 名前:デフォルトの名無しさん mailto:sage [2009/02/16(月) 20:32:53 ] tam.qmix.org/archives/2006/01/activerecordsql.html 「2006年01月28日 ActiveRecordでSQLiteのbusy_timeoutをひきのばす ActiveRecordでSQLiteアダプタを使っているとき、 ひとつのデータベースファイルに複数のプロセスや スレッドからアクセスしていると、 SQLite3::BusyException: database is locked というエラーが出ることがあります。SQLiteでは アクセスを試みてエラーを返すまでにロックを 待つ時間がデフォルトでは0らしく、ロック状態 だった場合は即座にエラーが発生します。」 ----------------------------------------- 、、、と書いてあるが、やっぱり待つ時間は0なのか? それとも、マニュアルに書いてあるとおり、 デフォルトでは60秒待つのか?
261 名前:デフォルトの名無しさん mailto:sage [2009/02/16(月) 21:04:09 ] 「アクセスを試みてエラーを返すまでにロックを待つ時間」 ↑これって専門用語でなんていうの?
262 名前:デフォルトの名無しさん mailto:sage [2009/02/16(月) 21:37:48 ] www.mail-archive.com/sqlite-users@sqlite.org/msg13901.html [sqlite] "Database is locked" error in PHP via PDO despite setting timeout Sun, 19 Mar 2006 11:15:50 -0800 I'm using Sqlite3 from PHP via PDO. My application was working fine as long as there was only one process accessing the database, then I ran two instances at once. Now one of the processes is getting "Error message: SQLSTATE[HY000]: General error: 5 database is locked" when trying to execute a statement which modifies the database. I understand that this is liable to happen, unless a timeout is set via sqlite3_busy_timeout(). I have set this timeout using the $db->setAttribute(PDO::ATTR_TIMEOUT, 5.0) however it's made absolutely no difference to the behaviour. It's certainly not waiting 5 seconds before giving me this error, and it's happening with exactly the same frequency as before. It's as if it's being ignored. I've stepped through PHP in the debugger (gdb) and it's definitely calling sqlite3_busy_timeout with the appropriate parameters (5000 ms). What else can I do to prevent this? If the answer is "nothing", I'm going straight over to MySQL :) Mark
263 名前:デフォルトの名無しさん mailto:sage [2009/02/16(月) 21:39:12 ] >>262 この問題なんだよな。これがよくわからない。 どうも (A)「php側で待つ処理」 (B)「sqlite側で待つ処理」 と、2つに分かれているようで、 >>259 のデフォルトの60秒というのは、 (A)だけの話のようだ。 つまり、(B)でエラーになったら、 (A)の処理時間がどうなっていようが、いきなり エラーになるということだ。
264 名前:デフォルトの名無しさん mailto:sage [2009/02/16(月) 21:40:31 ] そしてsqliteはトランザクションのネストができない。 つまり、トランザクション中に、別の プロセスがトランザクションを取得しようとしたら、 問答無用で、待ち時間0秒で、いきなり database is locked になるらしい。 これを回避するには、自分でエラーをトラップして、 ある程度sleepして、そんでリトライ、、、 この処理を自分で書かないといけないらしい。 ↑この理解であってる?
265 名前:デフォルトの名無しさん mailto:sage [2009/02/17(火) 11:35:47 ] include_once("HTTP/Client.php"); $LOGIN_URL = "https://moba8.net/"; $POST_URL = "https://moba8.net/a8v2/asLoginAction.do"; $LOGIN_ID = 'hoge'; $LOGIN_PW = 'huga'; $USER_AGENT = 'Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)'; $http = new HTTP_Client; $http->setDefaultHeader( array( 'User-Agent' => $USER_AGENT, 'Referer' => $LOGIN_URL, 'Connection' => 'Keep-Alive', 'Keep-Alive' => '300', ) ); $code = $http->get($LOGIN_URL); if($code == 200) { srand((double)microtime()*1000000); $params = array( 'moa' => '/moba8', 'login' => $LOGIN_ID, 'passwd' => $LOGIN_PW, 'x' => (int) round(rand(0,100)), 'y' => (int) round(rand(0,10)), ); $code = $http->post($POST_URL, $params, true); $response = $http->currentResponse(); print_r($response); なんでタイムアウトになっちゃうんでしょう??
266 名前:デフォルトの名無しさん mailto:sage [2009/02/18(水) 00:44:21 ] もしかして、 PDO->beginTransaction() 使えば、database is lockedの問題については 考えなくていいのか?
267 名前:デフォルトの名無しさん mailto:sage [2009/02/18(水) 00:50:27 ] SQLインジェクションの対策なんだけど、 プリペアードステートメントだけで、対策になっているのか? それとも、プリペアードステートメント+バインドパラムまでしないと 対策になっていないのか? どっちなのかな?
268 名前:デフォルトの名無しさん mailto:sage 後者 [2009/02/18(水) 01:16:30 ] >>267 そもそもSQLインジェクションって何か分かってないでしょ?
269 名前:デフォルトの名無しさん mailto:sage [2009/02/18(水) 01:47:13 ] >>268 ネットだけなら何とでも言えるよな? どうせ糞くだらねぇ三流の文系大か、下手したら高卒のくせによw 妄想だけなら脳内だけにしとけやオッサン。 現実ではお花畑みてぇな理想なんざ、何の役にも立ちやしねぇぞ? どうにもならねぇ事なんざ、腐るほどあるんだから、 SQLインジェクションの知識の自慢なんざしてねぇで、現実を直視しろよw まぁ、おまえみてぇに力仕事三昧&単純作業三昧の毎日じゃ、 『〜であってほしかった!〜であれば俺は今、こんなんじゃなかったんだ!(涙目)』 みてぇな妄想に耽るしか、救えねぇもんなwwww まぁせいぜい頑張れや。PHPはシェア0から100にまではい上がった言語だからな。 強さを求めれば結果はついてくるだろうぜ? いつまでも弱者で、影でコソコソと強者を批判するとか情けねぇと思わねぇか?w
270 名前:emi [2009/02/18(水) 03:02:35 ] プログラミングど素人です。すみませんが教えてください。 GPSのデータを自分のHP上にgooglemapで表示させたいんです。 HP URL khepresh.toyama-cmt.ac.jp/~d04233 GPSデータ $GPGGA,025207.561,3645.5161,N,13709.5192,E,0,0,,-10.0,M,35.7,M,,*5A $GPGSA,A,1,,,,,,,,,,,,,,,*1E $GPGSV,3,1,09,05,69,141,,12,64,095,17,22,59,271,24,18,51,192,21*7D $GPGSV,3,2,09,30,50,182,18,09,42,048,,14,38,313,24,15,11,112,16*7E $GPGSV,3,3,09,31,05,252,23*43 $GPRMC,025207.561,V,3645.5161,N,13709.5192,E,0.00,0.00,160708,,,N*7A $GPVTG,0.00,T,,M,0.00,N,0.00,K,N*32 $GPGGA,025208.561,3645.5161,N,13709.5192,E,0,0,,-10.0,M,35.7,M,,*55 $GPGSA,A,1,,,,,,,,,,,,,,,*1E $GPGSV,3,1,09,05,69,141,,12,64,095,17,22,59,271,17,18,51,192,20*7C $GPGSV,3,2,09,30,50,182,17,09,42,048,,14,38,313,23,15,11,112,15*75 $GPGSV,3,3,09,31,05,252,22*42 ↑毎秒データが追加される。 このデータの必要な部分のみをPHPで抽出し、javascriptに組み込み グーグルマップにリアルタイムでピンを立てていきたいんです。 流れはわかるのですが、プログラミングしろとなると本当にわからなくて…m(_ _)m すみません。どうかよろしくお願いします。
271 名前:emi [2009/02/18(水) 03:05:39 ] $remove_row_list = array( 2, 3, 4, 5, 6, 7); while ($data = fgetcsv($fp, 10000)) { $today = date("Y/m/d l H:i:s"); print($today)."<br>\n"; if (!in_array($count, $remove_row_list)) { echo $data[1] ."<br>\n"; echo $data[2] ."<br>\n"; echo $data[3] ."<br>\n"; echo $data[4] ."<br>\n"; echo $data[5] ."<br><br>\n"; } { $count++; } } fclose($fp); ?> 緯度や経度などの必要な部分だけを抽出してみたつもりです。 何かおかしいような気もするのですが これをjavascriptに組み込むことは可能なのでしょうか。
272 名前:デフォルトの名無しさん mailto:sage [2009/02/18(水) 03:56:02 ] >>271 javascriptとphpのリアルタイムでの連携なら、 xmlhttprequestや json、jsonpなどを調べてみると良いと思います。 ただxmlhttprequestのみでもできます。 もしかしたらそっちの方が簡単かもしれません。 それから、javascriptからphpの出力を読み込む時、 ブラウザがキャッシュを読もうとすることがあります。 その場合phpのurlに適当なクエリを、その都度変化させて追加すれば回避できます。(ブラウザに別物だと認識させる) 〜.php?12345←これ このクエリは時刻から生成すれば良いです。 あぁ分かりづらい文章だな〜orz
273 名前:270 [2009/02/18(水) 09:32:54 ] >>272 お返事ありがとうございます。 さっそく調べてみようと思います。 本当にご丁寧で感謝です。 行き詰ったら、再度質問させてください。m(_ _)m
274 名前:270 [2009/02/18(水) 15:54:18 ] >>272 JSONを使用したいと思うのですが、これも一つの プログラムになるのですよね? 最終的には個別といった形ではなく PHP、javascript、JSONが一つのプログラムになるのでしょうか?
275 名前:デフォルトの名無しさん mailto:sage [2009/02/18(水) 16:46:37 ] >>274 JSONはプログラムではなく、データ形式です。 PHPで出力する時に、JSON形式に整形して出力します。 そうすることで、 <script type="text/javascript" src="aaa.php"></script> のように、ページ読み込み時に一緒に読み込むことができるようになります。 ただ、これではページ読み込み時に1回読み込むのみで、 その後自動で更新するというようなことはできません。 自動でデータを更新する場合は、JSONPを使う必要があります。 >終的には個別といった形ではなく >PHP、javascript、JSONが一つのプログラムになるのでしょうか? ならないです。PHPとJavaScriptを連携させる形になります。
276 名前:270 [2009/02/19(木) 01:31:57 ] >>275 本当に知識不足ですみません。 なにせ、C言語をすこしかじっただけの者でして↓ でもこのプログラムを今週中に作らないといけないんです。 JSON形式にPHPを加工するのですか? javascriptのほうには手を加えなくてもいいのでしょうか? JSONPはJSONを理解しないと難しいですよね… 質問ばかりですみません。
277 名前:デフォルトの名無しさん mailto:sage [2009/02/19(木) 02:27:07 ] MySQLのDBであるテーブルの中身を上から10列取るってどんな感じにすればいいですか?
278 名前:デフォルトの名無しさん mailto:sage [2009/02/19(木) 02:41:58 ] >>276 そのレベルで今週中は厳しくないですか? とりあえず、JSONとJSONPのさわり程度のサンプルを置いておきますね。 hcw.x0.to/phpphp/ ちなみに、JSON形式は hcw.x0.to/phpphp/test.php?type=json JSONP形式は hcw.x0.to/phpphp/test.php?type=jsonp のような感じになります。 これで大体理解できれば何とかなるかな・・・
279 名前:デフォルトの名無しさん mailto:sage [2009/02/19(木) 02:45:11 ] >>277 ちょっとまった。 「上から」って、具体的にはどういう意味? プライマリーキーはふってるの?
280 名前:デフォルトの名無しさん mailto:sage [2009/02/19(木) 02:50:46 ] >>279 上じゃなくて下からでした申し訳ないです 名前 住所 電話 ああ adc 122 いい aaa 221 うう ddd 332 ええ ccc 111 例えばこんなテーブルの中身で3つ参照するとして下3つのデータを逆に表示したいのです ええ ccc 111 うう ddd 332 いい aaa 221
281 名前:デフォルトの名無しさん mailto:sage [2009/02/19(木) 03:23:08 ] >>280 データーベースの中味は ファイルと違って、「順番」という概念はないのでは? だからプライマリーキーというのをふって、 idが4−2とかって指定しなければいけないのでは ないのかな?
282 名前:デフォルトの名無しさん mailto:sage [2009/02/19(木) 03:24:16 ] だから、 id 名前 住所 電話 1 ああ adc 122 2 いい aaa 221 3 うう ddd 332 4 ええ ccc 111 カラムを一個追加して、 ↑のようにする。 そんで、idが2-4って 指定すればいいのでは?
283 名前:デフォルトの名無しさん mailto:sage [2009/02/19(木) 08:48:02 ] >>281 >>282 なるほど すばやい返答ありがとうございます
284 名前:デフォルトの名無しさん mailto:sage [2009/02/19(木) 16:15:52 ] だめだ、わからん現象がでてきた。 ファイルを2つ用意して、 トランザクションと、データーベースロックの実験をしているんだが。 「1.php」 「2.php」
285 名前:デフォルトの名無しさん mailto:sage [2009/02/19(木) 16:16:26 ] 「1.php」 <?php $dbh = new PDO('sqlite:test1'); $dbh->beginTransaction(); print "aaa<br>"; sleep(55); $dbh->commit(); print "bbb"; ?>
286 名前:デフォルトの名無しさん mailto:sage [2009/02/19(木) 16:17:00 ] 「2.php」 <?php $dbh = new PDO('sqlite:test1'); $dbh->beginTransaction(); print "ccc<br>"; $dbh->commit(); print "ddd"; ?>
287 名前:デフォルトの名無しさん mailto:sage [2009/02/19(木) 16:18:28 ] こういう条件で、 「1.php」 を実行する。するとsleepで55秒 待たされるから、その間に 「2.php」 を実行する。そしたら、 「1.php」がトランザクションをゲットしているから、 「2.php」は待たされる(あるいは、database is lockedになる) はずなのだが、すぐに結果が表示されてしまう。 ということは、「1.php」はデーターベースをロックしていないと いうことなのか?
288 名前:デフォルトの名無しさん mailto:sage [2009/02/19(木) 16:43:43 ] >>287 データ追加とか色々してみたら?
289 名前:デフォルトの名無しさん mailto:sage [2009/02/19(木) 17:01:21 ] >>288 そんなことする必要ないはず。 1がトランザクションをゲットしているんだから、 2は本来、入れないはず。 そういう動作にならないとおかしい。 そうでしょう?
290 名前:デフォルトの名無しさん mailto:sage [2009/02/19(木) 17:15:53 ] >>289 色々試さないで人に聞くやつは葛
291 名前:デフォルトの名無しさん mailto:sage [2009/02/19(木) 20:46:57 ] >>290 アメリカ人に聞いたらすぐに教えてくれたから、 お前もういいわ。クビです。
292 名前:デフォルトの名無しさん mailto:sage [2009/02/19(木) 20:52:46 ] stackoverflow.com/questions/564298?sort=oldest#sort-top ここだ。ここのアメリカ人に聞いた。英語で。 すぐに答えてもらったよ。やっぱ質問するなら、 アメリカだな。ひろゆきなんかもうクビでええわ。
293 名前:デフォルトの名無しさん mailto:sage [2009/02/19(木) 20:59:14 ] >>292 よかったね^^
294 名前:デフォルトの名無しさん mailto:sage [2009/02/19(木) 21:00:15 ] >>292 ちゃんとお礼しとけよ
295 名前:デフォルトの名無しさん mailto:sage [2009/02/19(木) 21:07:01 ] でも何だかんだで>>292 は優しいな、 ちゃんと結果を貼ってくれるなんて 今読んできたが、なる程ざワールド お礼はしとけよ。
296 名前:デフォルトの名無しさん mailto:sage [2009/02/19(木) 21:16:11 ] s01.megalodon.jp/2009-0219-2115-02/stackoverflow.com/questions/564298?sort=oldest 魚拓もとっておいた。削除されるかもしれないから。
297 名前:デフォルトの名無しさん mailto:sage [2009/02/19(木) 22:20:42 ] >>290 色々試す前にドキュメント読まないやつは五味葛
298 名前:デフォルトの名無しさん mailto:sage [2009/02/19(木) 22:26:10 ] >>297 ドキュメント読まない・試さないやつはどうなるんだ?
299 名前:デフォルトの名無しさん mailto:sage [2009/02/19(木) 22:27:44 ] 七味葛くらいじゃね
300 名前:82 [2009/02/20(金) 01:27:23 ] <?php $fp = fopen('http://自分のHP, 'r'); $count = 0; $remove_row_list = array(1, 2, 3, 4); while ($data = fgetcsv($fp, 10000)) { if (!in_array($count % 5, $remove_row_list)) { echo $data[1] ."<br>\n"; echo $data[2] ."<br>\n"; echo $data[4] ."<br><br>\n"; } { $count++; } } fclose($fp); ?> このプログラムの例えば$data[2]ですが、3645.5218という数字だったとします。 そこでまずこの桁を36.455218にし10進から60進に直すときは どういったプログラムを足せばいいのでしょう? 度 = int(36.455218) = 36 分 = int(0.455218 * 60) = int(27.31308) = 27 秒 = int(0.31308 * 60 *1000) / 1000 = 18.7848 = 36°27′18.7848″といったような感じです。
301 名前:デフォルトの名無しさん mailto:sage [2009/02/20(金) 08:18:34 ] >そこでまずこの桁を36.455218にし sprintf >10進から60進に直すときは 10進から60進に直せばいい 10進から2進数に変換するのと同じ GPS座標の変換をやってるみたいだねえ
302 名前:デフォルトの名無しさん mailto:sage [2009/02/22(日) 02:09:19 ] database is lockedをキャッチして、 しばらく待って、リトライさせる処理って、 もしかして関数化して再帰なの? それとも、こういう時にthrowを使えるの?
303 名前:デフォルトの名無しさん mailto:sage [2009/02/22(日) 20:04:58 ] PHPを利用して一定の時間が経過したらMySQLのデータベースのあるテーブルの中の レコードを削除する方法ってどのような感じでやればいいのでしょうか?
304 名前:デフォルトの名無しさん mailto:sage [2009/02/22(日) 20:47:27 ] cron?
305 名前:デフォルトの名無しさん mailto:sage [2009/02/23(月) 02:47:21 ] ある適当な文字列 例えば10文字 qwertyuiopの後ろ5文字を削って半分にするプログラムはどんな感じになるでしょうか?
306 名前:デフォルトの名無しさん mailto:sage [2009/02/23(月) 02:53:49 ] substr($string, 0. floor(strlen($string) / 2));
307 名前:デフォルトの名無しさん mailto:sage [2009/02/23(月) 02:54:24 ] みすた substr($string, 0, floor(strlen($string) / 2));
308 名前:デフォルトの名無しさん mailto:sage [2009/02/23(月) 02:56:35 ] すばやい返答ありがとうございます substr で文字列数?を指定することで好きな長さにできる感じですか? 初心者なものですみません
309 名前:デフォルトの名無しさん mailto:sage [2009/02/23(月) 02:57:51 ] とりあえずマニュアルを読むことをお勧めする ttp://jp.php.net/substr
310 名前:デフォルトの名無しさん mailto:sage [2009/02/23(月) 03:02:31 ] なるほどありがとうございます! 便利な関数ですね
311 名前:デフォルトの名無しさん mailto:sage [2009/02/23(月) 21:03:41 ] <?php try { $oDbCxn = new PDO('sqlite:test1'); $oDbCxn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); } catch (PDOException $e) { die("Error connecting to DB"); } $bUpdatePending = true; while ($bUpdatePending) { try { $oDbCxn->query("BEGIN EXCLUSIVE TRANSACTION"); // $oDbCxn->beginTransaction(); $oDbCxn->exec("UPDATE tb1 SET value = value + 1 WHERE id = '1'"); //$oDbCxn->commit(); $oDbCxn->query("COMMIT"); $bUpdatePending = false; // Exit the loop now the update has been done } catch (PDOException $e) { print $e->getMessage(); $oDbCxn->rollback(); } } ?> やったついに成功した
312 名前:デフォルトの名無しさん mailto:sage [2009/02/23(月) 22:31:54 ] 質問お願いします PHPがどういうソースコードで書かれているのか読んでみたいのですが 何を読めばいいのか教えてください。 また PHPはC言語で書かれていると本にあったのですが C言語がわからないと読めないのでしょうか。 よろしくお願いいたします。
313 名前:デフォルトの名無しさん mailto:sage [2009/02/23(月) 22:51:27 ] もしや、日本語を知らないのに 日本語を読もうとしてるのか?
314 名前:デフォルトの名無しさん mailto:sage [2009/02/23(月) 22:57:46 ] >>312 PHP自体はCでかかれているけど、 Cなんて知る必要無いよ ライブラリとか作るなら別だけど。
315 名前:デフォルトの名無しさん mailto:sage [2009/02/23(月) 22:58:18 ] >>313 行間を読め 人間はコンピューターではない
316 名前:313 mailto:sage [2009/02/23(月) 23:35:58 ] >>315 行間読んでみた。 正直すまんかった。
317 名前:デフォルトの名無しさん mailto:sage [2009/02/24(火) 00:26:36 ] www.php.net/downloads.php ここ行って、Complete Source Code っていうのダウンロードして、 ひとつひとつのファイルを適当なエディタで開いて読んでいったらいいのではないかな? そういう話ではない?
318 名前:デフォルトの名無しさん [2009/02/24(火) 01:59:32 ] 超初歩的なこと(だと思う)を教えて欲しいのですが、 file_get_contentsに関することです。 $〜〜 = file_get_contents(http://〜〜〜/?js=$aiueo?p=$p); という形にして、$aiueoと$pを外において繰り返したいんですが、 どうも$aiueo?p=$pという風に一緒くたにして読み込んでしまっているようで上手く出来ません 色々試しましたが結局この形式以外に回避することは難しそうなので、教えていただけませんか? 自分でもがんばってみます
319 名前:>>318 [2009/02/24(火) 02:05:22 ] すみません、ソッコーですが自己解決しました!
320 名前:241 mailto:sage [2009/02/24(火) 02:24:21 ] >>319 どう解決したかは知らんが、こんな感じか? $〜〜 = file_get_contents("http://〜〜〜/?js={$aiueo}?p={$p}");
321 名前:>>318 [2009/02/24(火) 02:37:07 ] いえ、単純にURLがおかしかったんです ?js=$aiueo?p=$p を、 ?js=$aiueo&p=$p にしたらいけました!
322 名前:デフォルトの名無しさん mailto:sage [2009/02/24(火) 08:59:39 ] 変数の値があればその値を、なければNULLを得たいんだが簡単な方法無いか 今は三項演算とemptyを組み合わせて (empty($variable)?($variable):(NULL)) ってやってるんだが 変数名が長くなると読みづらいし扱いづらいしで 何かいい方法は無いですか
323 名前:デフォルトの名無しさん mailto:sage [2009/02/24(火) 09:28:39 ] 関数を作るぐらいしか思いつかないが、その値自体はどうやってとってくるの?
324 名前:312 mailto:sage [2009/02/24(火) 09:32:26 ] >>314 レスありがとうございます。 PHPが言語としてどういう設計をされているかを知りたいです。 >>317 レスありがとうございます。 ファイルがたくさんあるのですが、どれを読めば理解を深める近道でしょうか。
325 名前:デフォルトの名無しさん [2009/02/24(火) 09:46:57 ] 全部
326 名前:デフォルトの名無しさん [2009/02/24(火) 09:47:41 ] >>322 変数の値があればその値を、なければNULLを得たい? $hoge = $variable;
327 名前:デフォルトの名無しさん mailto:sage [2009/02/24(火) 14:48:02 ] >>323 ,326 すまん、変数が存在したらの間違いだ。 俺の手違いで紛らわしいレスにしてしまい申し訳ない。 読んで頭にハテナが出てしまったと思う その分のガッカリ感がいかんかと想像し、しかと胸に刻んでおきます。
328 名前:デフォルトの名無しさん mailto:sage [2009/02/24(火) 14:52:02 ] >>327 存在したら、か。 そういう使い方だったら連想配列あたりを調べると幸せになれるとオモ
329 名前:デフォルトの名無しさん mailto:sage [2009/02/24(火) 15:04:22 ] スーパーグローバル変数である$GLOBALSまでは辿りつけたけど そこから先は想像つかないな array_key_exists は有無しか判断してくれないし
330 名前:デフォルトの名無しさん mailto:sage [2009/02/24(火) 16:38:59 ] MySQLからデータ抜き出してID番号だけ$_SESSION['id']に代入したいんだけど fetchrowでやると$_SESSIONに代入できたときは検索結果が表示されないし 検索結果を先に表示すると$_SESSIONに代入されないんだけど他に方法あります?
331 名前:デフォルトの名無しさん mailto:sage [2009/02/24(火) 16:44:54 ] >>322 $foo = isset($bar) ? $bar : null;
332 名前:デフォルトの名無しさん mailto:sage [2009/02/24(火) 17:05:27 ] 横槍でスマンがそれは変数名を短くしろよって意味なのか
333 名前:デフォルトの名無しさん mailto:sage [2009/02/24(火) 17:50:16 ] isset と empty は挙動が違うだろ
334 名前:デフォルトの名無しさん mailto:sage [2009/02/24(火) 18:05:40 ] まぁ…その通りなんだがな… だが質問の内容をよく読んでから書き込めって…… 一人浮いてるぞ……
335 名前:デフォルトの名無しさん mailto:sage [2009/02/24(火) 18:22:16 ] >>322 って「$variable = 100;」だった場合、NULLを返したいの?
336 名前:デフォルトの名無しさん mailto:sage [2009/02/24(火) 19:14:19 ] >>335 よく嫁
337 名前:デフォルトの名無しさん mailto:sage [2009/02/24(火) 19:38:49 ] >>322 はサンプルコードが間違ってるから混乱してるなw
338 名前:デフォルトの名無しさん mailto:sage [2009/02/24(火) 21:55:22 ] >>327 存在しない変数を参照するとふつうにNULLが返るので、 それ以上何が問題なのか分からん。warningが嫌なら @$foo とかして参照すればいい。
339 名前:デフォルトの名無しさん mailto:sage [2009/02/24(火) 23:23:16 ] サンプルコード自体が動作を満たしてませんね 色々と不備を重ねてしまいすみませんでした。 >>338 これで十分なんですね。 というかwarningが出ていても変数にNULLが入るのは知りませんでした。 古い表現ですが、感謝感激あめあられです。 回答していただいた方々もありがとうございます。
340 名前:デフォルトの名無しさん mailto:sage [2009/02/25(水) 03:45:49 ] 出るのはWarningじゃなくてNoticeでは?
341 名前:デフォルトの名無しさん mailto:sage [2009/02/28(土) 01:47:27 ] リクエストパラメータなどを収めた連想配列から、いくつかのパラメータだけ の部分配列を取り出したい。 $request = array('hoge'=>1, 'fuga'=>2, 'piyo'=>... これからキーが hoge, fuga の物だけを取り出すとすると、 foreach (array('hoge', 'fuga') as $param) { $a[$param] = $request[$param]; } これ、もうちょっと簡潔に書けないかな? $a = array_intersect_key($request, array_flip(array('hoge', 'fuga'))); こんなの考えたけど、あんまり短くならない。
342 名前:デフォルトの名無しさん mailto:sage [2009/02/28(土) 13:24:25 ] >>341 関数にする。 array_flip(array('foo','bar'))の部分を最初から連想配列にする。
343 名前:デフォルトの名無しさん mailto:sage [2009/03/02(月) 18:23:16 ] changi.2ch.net/test/read.cgi/entrance/1226843784/468- 468 名前:名無しさん?[sage] 投稿日:2009/03/02(月) 11:25:37 ID:??? ?2BP(0) PHPにバグ、vmwareの組み込みedのバグによる脆弱性。アップデートを。 と、いう事らしいです お気をつけを
344 名前:デフォルトの名無しさん mailto:sage [2009/03/03(火) 16:14:31 ] firefoxだとsessionが動作するのに IEだと動作してくれないのって何が原因ですか?
345 名前:デフォルトの名無しさん mailto:sage [2009/03/03(火) 17:15:45 ] htmlを通るとsessionが切れるとかいう話もどっかで聞いたな
346 名前:デフォルトの名無しさん [2009/03/03(火) 23:44:08 ] phpで作りたいものがない
347 名前:デフォルトの名無しさん mailto:sage [2009/03/03(火) 23:52:02 ] 何ならあるの
348 名前:デフォルトの名無しさん mailto:sage [2009/03/04(水) 06:31:16 ] 子作り
349 名前:デフォルトの名無しさん mailto:sage [2009/03/05(木) 12:37:25 ] <?PHP function timeSinceLastCall() { static $lastTime = null; $curTime = microtime(true); if($lastTime === null) $elapsed = 0; else $elapsed = $curTime - $lastTime; $lastTime = $curTime; $d=sprintf("%.f", $elapsed); return $d; } for ($i=1;$i<10;$i++){ print 'Loop took ' . timeSinceLastCall() . 's'; print '<br>'; } ?>
350 名前:デフォルトの名無しさん mailto:sage [2009/03/12(木) 22:25:59 ] <?php $handle = fopen("./file.txt", "r+"); $b=file_get_contents ('./file.txt'); $a=$b+1; fwrite($handle, $a); print $a; ?> このコードを実行すると、 一回ごとに数字が1増える
351 名前:デフォルトの名無しさん [2009/03/12(木) 22:45:13 ] アクセスカウンタじゃんw
352 名前:デフォルトの名無しさん mailto:sage [2009/03/12(木) 23:50:26 ] で、アクセスカウンタって、そうやってテキストで作るのと、数値項目一つ入れたDBで作るのと、どっちがいい?
353 名前:デフォルトの名無しさん mailto:sage [2009/03/13(金) 00:21:56 ] データーベースで作る場合は、 まず、 「どのデーターベースにしようかな?」 って決めなきゃならないじゃん。
354 名前:デフォルトの名無しさん mailto:sage [2009/03/13(金) 00:24:01 ] そんで決めたら、今度は、 「どのアクセス方法でアクセスしようかな?」 って、アクセス方法を決めないといけないじゃん。 PDOとか、pear::dbとか、 pear::mdbとか、pear::MDB2とか。 (これらはデーターベースアクセス抽象化レイヤー) それか、O/Rマッパー使うか?とか。 pear db_dataobjectとか。
355 名前:デフォルトの名無しさん mailto:sage [2009/03/13(金) 00:24:53 ] そんで例えば、PDO使う、とか決めるじゃない。 そしたら、今度は、 PDO->execでやるのか、 プリペアードステートメントでやるのか、 バインドパラムは使うのか? とか、悩まないといけない。
356 名前:デフォルトの名無しさん mailto:sage [2009/03/13(金) 00:27:00 ] そんでわからないから、例えばWEBプログラム板で聞くじゃない そしたら 「おれたちはマニュアルにのってることしか 回答できねええんだよおおおお」 とかってキモヲタが絶叫してるし。 まじ関わり合いになりたくねぇえ、って心の底から思うじゃない。 思わずプログラム板に避難しちゃうくらいきもいから。
357 名前:デフォルトの名無しさん mailto:sage [2009/03/13(金) 00:48:09 ] >>353-356 おまいらのせいで100gで3600円もする貴重な最高級煎茶が無駄になったじゃないか
358 名前:デフォルトの名無しさん mailto:sage [2009/03/13(金) 00:56:54 ] >>352 テキストが良いよ
359 名前:デフォルトの名無しさん mailto:sage [2009/03/13(金) 02:08:50 ] 排他しろヴォケ
360 名前:デフォルトの名無しさん mailto:sage [2009/03/13(金) 08:17:04 ] 開いたら閉じてくれぇえええええ
361 名前:デフォルトの名無しさん mailto:sage [2009/03/13(金) 19:32:19 ] <form method="post" action="<?php $_SERVER["PHP_SELF"]; ?>"> <input type="submit" value="プッシュ!"> <input type="hidden" name="bbb" value=" あれほど言ったのに、まだそんなカキコするですか!もう許さんです! あんたを許すわけにはいかんです!こんなカキコでレスたくさん付くとでも 思ってるなんて頭おかしーよです!あんたみたいなバカ初めて見たです! あんたみたいなバカ、ゴキブリ以下です!あんたみたいなバカ、ウジ虫以下です! 死んでほしーです!つーか、死ぬべきです!あんたは絶対に許されないです! 勘違いしたバカを許すわけにはいかんのです!面白半分にいい加減なカキコ するヤツなど許さんです!キャラメルコーンのピーナッツをケツの穴に詰めて 死ねよです!!! "> </form> <?php if(isset($_POST['bbb'])){ print "<pre>". $_POST['bbb'] ."<pre>"; print "<br>"; } ?>
362 名前:デフォルトの名無しさん mailto:sage [2009/03/13(金) 19:33:03 ] >>361 これを「1.php」とかのファイル名で保存して実行。 するとプッシュってボタンが出るから、 それを押すと、自分に対する応援のメッセージが出力される。
363 名前:デフォルトの名無しさん mailto:sage [2009/03/13(金) 20:12:21 ] <form method="post" action="<?php $_SERVER["PHP_SELF"]; ?>"> <input type="submit" name="bbb" value="プッシュ!"> </form> <?php if(isset($_POST['bbb'])){ $handle = fopen("./file.txt", "r+"); $b=file_get_contents ('./file.txt'); $a=$b+1; fwrite($handle, $a); print $a; } ?>
364 名前:デフォルトの名無しさん mailto:sage [2009/03/13(金) 20:13:14 ] >>363 これを「2.php」とかの名前で保存。 それと、file.txtって名前のテキストファイルを作成して 同じディレクトリに置いておく。 これで事前準備はOK。 あとは、2.phpを実行して、ボタンを押すと、 一回押すごとに、数字が1増える。
365 名前:デフォルトの名無しさん mailto:sage [2009/03/13(金) 22:28:07 ] <?php $cnt = 0; $f = file_get_contents (__FILE__); file_put_contents (__FILE__, preg_replace_callback("/(?=>\$cnt = )[0-9]+(?=;)/", create_function( ... って感じで、自身を書き換えるカウンタもつくれるんだろうな
366 名前:デフォルトの名無しさん mailto:sage [2009/03/13(金) 22:41:47 ] >>365 そこの変な書き込みしているやつ、止まれ。 お前はタリバンか。
367 名前:デフォルトの名無しさん [2009/03/14(土) 05:50:25 ] 画像をアップロードするものを作っているのですが 拡張子はjpgでも中身はTIFFだったりする場合って、みなさんどう対処されてます? ブラウザでは表示されないんで困ってます 教えてエロい人!
368 名前:デフォルトの名無しさん mailto:sage [2009/03/14(土) 06:30:59 ] >>367 ファイルの先頭数バイトで判定すれば良いんじゃね?
369 名前:デフォルトの名無しさん mailto:sage [2009/03/14(土) 07:52:45 ] >>368 バイナリは詳しく分からないので getimagesize()で確認してみるとにしました 欲を言えばGDとかで通常のjpgにしたかったんですけど 上書きしたjpgも何故かブラウザで見れなかった〈(。А。)〉
370 名前:デフォルトの名無しさん mailto:sage [2009/03/14(土) 09:58:10 ] >>369 俺が適当に作って使ってるやつでよければ 大抵のサーバマシンには fileコマンド ぐらい入ってると予想して 無かったらドンマイ function getExtensionByMineType($fname) { $minetype = trim(`file -i $fname | cut -d' ' -f2`); $ext = NULL; switch ($minetype) { case "image/jpeg": $ext = ".jpg"; break; case "image/gif": $ext = ".gif"; break; case "image/png": $ext = ".png"; break; default: $ext = NULL; break; } return $ext; } >>370 コード参照用
371 名前:デフォルトの名無しさん mailto:sage [2009/03/14(土) 10:00:31 ] 調べて増やせば他の拡張子も対応可能 貼ってから気付いたけどマイムタイプだな
372 名前:デフォルトの名無しさん mailto:sage [2009/03/14(土) 11:46:57 ] postgresql の COALESCE みたいな関数ってある? $a=""; $b=null; $c="hoge"; xxx($a, $b, $c); hoge と表示される
373 名前:デフォルトの名無しさん mailto:sage [2009/03/14(土) 13:56:08 ] PostgreSQLのってか標準SQLのな まーないけどこんな感じでなんとかなるんじゃね。 $ret = $a == "" ? ($b == "" ? ($c == "" ? null : $c) : $b) : $a; is_nullとか===にしちゃ駄目よ。 そういやPHPの日本語マニュアル見ると三項演算子ってterniary条件文ってなってるけど ternaryの間違いだよなこれw
374 名前:デフォルトの名無しさん mailto:sage [2009/03/14(土) 15:21:26 ] やっぱないのか PHP5.3 から ?: ってのが出来てるみたいだね
375 名前:デフォルトの名無しさん mailto:sage [2009/03/14(土) 15:44:55 ] いや昔からできてるけど
376 名前:デフォルトの名無しさん mailto:sage [2009/03/14(土) 16:17:00 ] 昔からって三項演算子の省略型が? $ret = $a ?: $b
377 名前:デフォルトの名無しさん mailto:sage [2009/03/14(土) 16:32:05 ] C++あたりから普通にあるじゃん・・・
378 名前:デフォルトの名無しさん mailto:sage [2009/03/14(土) 16:46:48 ] 誰がC++の話してんだよ^^;
379 名前:デフォルトの名無しさん mailto:sage [2009/03/14(土) 16:56:18 ] あぁすまん、Cからあっ(ry C派生なんだからPHPは最初からあったでしょ >三項演算子
380 名前:デフォルトの名無しさん mailto:sage [2009/03/14(土) 17:04:44 ] >>379 >>376
381 名前:デフォルトの名無しさん mailto:sage [2009/03/14(土) 17:28:26 ] >Notice: Undefined variable エラーでてコンパイルすら通らなかった。
382 名前:デフォルトの名無しさん mailto:sage [2009/03/14(土) 17:29:45 ] ちがった、こっちだったw >Parse error: syntax error, unexpected ':'
383 名前:デフォルトの名無しさん mailto:sage [2009/03/14(土) 18:40:33 ] コンパイルしてるのか
384 名前:デフォルトの名無しさん mailto:sage [2009/03/14(土) 18:52:20 ] PHPはソースが変更されて最初のアクセスでコンパイルされて中間コードが生成される 二度目以降はこの中間コードを直接見るので一度目より速度は多少速くなる。 実はこれ4.xの途中で変更された仕様で、古いバージョンだと毎度コンパイルしてるから遅い
385 名前:デフォルトの名無しさん [2009/03/14(土) 19:00:23 ] php5でSmartIrcは どうやってつかうのでしょうか おしえてください
386 名前:デフォルトの名無しさん mailto:sage [2009/03/14(土) 19:08:22 ] しらない
387 名前:369 mailto:sage [2009/03/14(土) 19:18:54 ] >>370 遅くなりましたが、ご丁寧にどうもありがとうございます!
388 名前:385 [2009/03/14(土) 19:27:40 ] ttp://www.dotup.org/uploda/www.dotup.org2648.gz ダウンロードしたんだよ 頼むよ、おしえてくれよ
389 名前:デフォルトの名無しさん mailto:sage [2009/03/15(日) 09:26:40 ] ドキュメント読めばいいじゃん
390 名前:デフォルトの名無しさん mailto:sage [2009/03/15(日) 19:34:38 ] ageんなカス
391 名前:デフォルトの名無しさん mailto:sage [2009/03/19(木) 22:49:07 ] 日本を狙う 朝鮮人の原爆ミサイル建造費用は 日本国内の 在日パチンコ屋からの送金 パチンコの市場規模は 年間30兆円 日本の国家予算の 3分の1以上 北朝鮮の国家予算の なんと100年分! これを在日朝鮮人が 自由に動かし パチンコマネーを 北朝鮮に送金している パチンコ屋を 全面営業禁止にしない限り 北朝鮮は制裁など 痛くもカユくもない 在日朝鮮人なら 生活保護もらい放題 毎月二十数万円もらって 毎日遊んで暮らしてる 住宅費・医療費・教育費なんでも無料 税金は1円も払わない 超特権階級(貴族) 民主党は 選挙権まで与える予定 日本は 在日天国 <丶`∀´> ウハウハ〜♪ 2cchan.ham-radio-op.net/kimuchi.html
392 名前:デフォルトの名無しさん mailto:sage [2009/03/28(土) 02:06:58 ] Visual Studio2005( VS.Php 2.6 試用版 )を使用して PHPのデバッグ実行を行おうとしているのですが、PHPスクリプト内に設定した ブレークポイントで止りません。 一体どうすればブレークポイントを止める事が出来ますか? 【ブレークポイント上のエラー】 ・ブレークポイントは、現在の設定ではヒットしません。 Unbound break point 【IEの設定】 次のチェックを外しています。 ・スクリプトのデバッグを使用しない(Internet Explorer) ・スクリプトのデバッグを使用しない(その他) 【php.iniの設定】 [DBG] debugger.enabled = true debugger.profiler_enabled = true debugger.JIT_host = 127.0.0.1 debugger.JIT_port = 7869 debugger.enable_session_cookie = true extension=php_dbg.dll ;;;;;;;;;;;;;;;;;;; ; Module Settings ; ;;;;;;;;;;;;;;;;;;;
393 名前:デフォルトの名無しさん mailto:sage [2009/04/02(木) 20:35:48 ] 文字列の関数を利用する時は、 非マルチバイト関数を利用する事が ないかとおもいますが。 マルチバイト関数と、非マルチバイト関数対応表と、 マルチバイト関数が存在しない非マルチバイト関数表 とかってどっかにないでしょうか? 例、mb_trimが存在しない。
394 名前:デフォルトの名無しさん mailto:sage [2009/04/04(土) 22:42:33 ] go-pear.bat 氏ね!go-pear.bat 氏ね!go-pear.bat 氏ね!go-pear.bat 氏ね!go-pear.bat 氏ね! go-pear.bat 氏ね!go-pear.bat 氏ね!go-pear.bat 氏ね!go-pear.bat 氏ね!go-pear.bat 氏ね! go-pear.bat 氏ね!go-pear.bat 氏ね!go-pear.bat 氏ね!go-pear.bat 氏ね!go-pear.bat 氏ね! go-pear.bat 氏ね!go-pear.bat 氏ね!go-pear.bat 氏ね!go-pear.bat 氏ね!go-pear.bat 氏ね! go-pear.bat 氏ね!go-pear.bat 氏ね!go-pear.bat 氏ね!go-pear.bat 氏ね!go-pear.bat 氏ね! go-pear.bat 氏ね!go-pear.bat 氏ね!go-pear.bat 氏ね!go-pear.bat 氏ね!go-pear.bat 氏ね! go-pear.bat 氏ね!go-pear.bat 氏ね!go-pear.bat 氏ね!go-pear.bat 氏ね!go-pear.bat 氏ね! go-pear.bat 氏ね!go-pear.bat 氏ね!go-pear.bat 氏ね!go-pear.bat 氏ね!go-pear.bat 氏ね! go-pear.bat 氏ね!go-pear.bat 氏ね!go-pear.bat 氏ね!go-pear.bat 氏ね!go-pear.bat 氏ね! go-pear.bat 氏ね!go-pear.bat 氏ね!go-pear.bat 氏ね!go-pear.bat 氏ね!go-pear.bat 氏ね!
395 名前:デフォルトの名無しさん mailto:sage [2009/04/05(日) 00:34:44 ] >>393 jp.php.net/manual/ja/ref.strings.php jp.php.net/manual/ja/ref.mbstring.php ここから関数群の差分取るスクリプト書けばおk
396 名前:デフォルトの名無しさん mailto:sage [2009/04/05(日) 00:48:44 ] >>395 ありがとうございます。 非マルチバイト関数を使うな! といっても、もれが出てしまいます。 皆様どのように解決しておりますでしょうか? 思いつくのは。 ・コーディング後に非mbチェックスクリプトを実行。 ・関数を改造してこけるようにする。 ・対処しない、根性でテスト。
397 名前:デフォルトの名無しさん mailto:sage [2009/04/05(日) 01:22:45 ] >>396 0003. セキュリティを考慮して、特定の関数を使用不可能にする方法 ttp://php.to/tips/3/
398 名前:デフォルトの名無しさん mailto:sage [2009/04/05(日) 01:47:54 ] >>397 ありがとうございます。
399 名前:デフォルトの名無しさん mailto:sage [2009/04/06(月) 04:27:20 ] <?php $a=mb_convert_encoding(`ping www.google.com`,"UTF-8","SJIS"); print "<pre>"; print_r ($a); print "</pre>"; ?> ----------------------------------------------- これはおもしろい。 実行すると、PHPからpingを打って、 結果を表示してくれる。
400 名前:デフォルトの名無しさん mailto:sage [2009/04/06(月) 05:38:29 ] $a = `ping www.google.com`; でいいんじゃないのかと思うが。
401 名前:デフォルトの名無しさん mailto:sage [2009/04/06(月) 05:44:59 ] >>400 やってみたらできた、ありがとう。 execのコードを一部改変したものですから。
402 名前:デフォルトの名無しさん mailto:sage [2009/04/07(火) 07:55:39 ] 言い訳スンナヨ
403 名前:デフォルトの名無しさん mailto:sage [2009/04/07(火) 16:33:34 ] Net_UserAgent_Mobileを使って3G端末の識別がしたいんだけど、isFOMA()メソッド を使用したら、「Call to undefined method Net_UserAgent_Mobile_NonMobile::isFOMA()」 って表示された。 本でもネットでも以下の方法しか記載されてないから、わけわからない。 $agent = Net_UserAgent_Mobile::singleton(); if ($agent->isFOMA()) {}
404 名前:デフォルトの名無しさん mailto:sage [2009/04/08(水) 00:59:15 ] それってPEAR?
405 名前:デフォルトの名無しさん mailto:sage [2009/04/08(水) 03:12:46 ] >>399 へぇーそんな事も出来るんだ。 面白いね
406 名前:デフォルトの名無しさん mailto:sage [2009/04/08(水) 11:28:04 ] >>403 Net_UserAgent_Mobile_NonMobile::isFOMA() と Net_UserAgent_Mobile::isFOMA() は違うがな
407 名前:デフォルトの名無しさん mailto:sage [2009/04/08(水) 14:18:15 ] d.hatena.ne.jp/indiana/20090217/p1 ここにある、かなをローマ字に変換するクラスですが、 うまく動きません。サンプルまでそのまま引きうつして実行しても、 だめです。非常に便利なクラスなのでぜひ活用させてもらいたいの ですが、何か、アドバイスをもらえませんでしょうか。
408 名前:デフォルトの名無しさん mailto:sage [2009/04/08(水) 14:35:36 ] エスパーじゃないので解りません
409 名前:デフォルトの名無しさん mailto:sage [2009/04/08(水) 22:36:15 ] 使えない人ですね
410 名前:デフォルトの名無しさん mailto:sage [2009/04/08(水) 23:00:59 ] >>407 文字コードは設定と一致してる? クラスの先頭にある var $charset='utf-8'; の 'utf-8' を 'shift_jis' に変えてみるとか
411 名前:デフォルトの名無しさん mailto:sage [2009/04/08(水) 23:40:42 ] >>410 ファイルはすべてUTF-8にしています。 文字コードを試しに変えてみましたが、だめなようです。 エラーは出ませんが、何も表示されません。
412 名前:デフォルトの名無しさん mailto:sage [2009/04/08(水) 23:42:24 ] >>411 display_errors error_reporting
413 名前:デフォルトの名無しさん mailto:sage [2009/04/09(木) 00:46:02 ] 手元のインタプリタで試したけどそのままで動いてる (utf-8 => shift_jisのみ修正) > class kana2roma { // var $charset='utf-8'; var $charset='shift_jis'; … > $roma=new kana2roma(); echo $roma->conv('アキハバラあったかまつり'); akihabaraattakamatsuri null このクラスは漢字を単純に捨ててるので、認識できない文字の 場合も同様に捨ててるだけ(エラーがでない)の可能性も高い だとすると文字化けした場合、すべての文字が単純に捨てられてる だけの可能性がある なので以下の2点を確認することを勧める 1) 半角英字の文字がそのまま出力されるか 2) 関数 _baseOne() の最後を書き換えて文字を確認する return NULL; => return $str; これで漢字などの変換対象でない文字もそのまま出力するはず これで文字化けなどが起こっているなら文字コード回りを再度見直した ほうがよいと思う
414 名前:デフォルトの名無しさん mailto:sage [2009/04/09(木) 07:45:35 ] PHPのCLI版おもすれー
415 名前:デフォルトの名無しさん mailto:sage [2009/04/09(木) 10:08:47 ] CLI ってまぎらわしい。 Common Language Infrastructure (いわゆる .NET) Command Line user Interface (いわゆる DOS窓) Command Line Interpreter (いわゆる CMD.EXE、COMMAND.COM)
416 名前:デフォルトの名無しさん mailto:sage [2009/04/09(木) 10:10:01 ] あと、Client (Client application) を CLI と略すこともある。 まぎらわし〜〜〜
417 名前:デフォルトの名無しさん mailto:sage [2009/04/09(木) 11:33:27 ] <html> <head> <title>フォームのデータを受け取る</title> </head> <body> <?php echo "<p>入力内容:".@$_POST["text1"]; ?> <form method = "POST" action = " <? = $_SERVER["PHP_SELF"]?> "> <table> <tr> <td><input type = "text" name = "text1"></td> <td><input type = "submit" value = "送信" name = "sub1"></td> </tr> </table> </form> </body> </html> 本で読んで上のようなコードを書いたんですがうまくいきません 原因分かる方いたら教えてほしいのですが phpは5.2 アパッチは2.2を使ってます
418 名前:デフォルトの名無しさん mailto:sage [2009/04/09(木) 12:10:24 ] Access forbidden! 要求されたオブジェクトへのアクセス権がありません。 読み込みが許可されていないか、 サーバが読み込みに失敗したかでしょう。 サーバーの障害と思われる場合は、ウェブ管理者までご連絡ください。 Error 403 localhost 04/09/09 12:08:32 Apache/2.2.11 (Win32) PHP/5.2.9-1 書き忘れたのですが、上のようなエラー文が出ます
419 名前:デフォルトの名無しさん mailto:sage [2009/04/09(木) 14:20:28 ] >>417-418 apacheのerror.logさらせ話はそれからだ
420 名前:デフォルトの名無しさん mailto:sage [2009/04/09(木) 14:39:05 ] [Thu Apr 09 14:36:08 2009] [error] [client 127.0.0.1] (20024)The given path is misformatted or contained invalid characters: Cannot map POST /%3C?%20=%20$_SERVER['PHP_SELF']?> HTTP/1.1 to file, referer: localhost/rcvform2.php POSTがちゃんと働いていないということでしょうか?
421 名前:デフォルトの名無しさん mailto:sage [2009/04/09(木) 15:40:26 ] <? = $_SERVER["PHP_SELF"]?> を普通にファイルへのパスにしたらどうなりますか。
422 名前:デフォルトの名無しさん mailto:sage [2009/04/09(木) 15:54:37 ] >>421 うまくいきました! ということは<? = $_SERVER["PHP_SELF"]?>の部分記述の仕方に問題があったんですね お騒がせしてすみませんでした。
423 名前:デフォルトの名無しさん mailto:sage [2009/04/09(木) 17:04:02 ] ブラウザからメールアドレスを入力してもらって、 そのアドレス宛にメールを送るプログラムを書いているのですが、 メールの件名の7文字目だけ抜けるという現象に見舞われています。 (文字化けは起こしていません) 文字コードなど怪しいところは調べたのですが解決に至っていません。 スクリプト内で設定した件名:パスワード再発行URL メーラで表示されている件名:パスワード再行URL ヘッダ内のsubject =?utf-8?Q?=e3=83=91=e3=82=b9=e3=83=af=e3=83=bc=e3=83=89=e5=86=8d=e7=99?= =?utf-8?Q?=ba=e8=a1=8cURL?= 文字コード以外で調べるべき箇所があるのでしょうか。 アドバイスなどありましたらお願いします。
424 名前:デフォルトの名無しさん mailto:sage [2009/04/09(木) 22:42:50 ] >>422 その場合、phpのショートタグなんちゃらが 無効になっている。
425 名前:デフォルトの名無しさん mailto:sage [2009/04/09(木) 22:44:18 ] >>423 あいうえおかきくけこ といれて、抜けるかどうか調べる
426 名前:デフォルトの名無しさん mailto:sage [2009/04/10(金) 05:23:33 ] ソ
427 名前:407=411 mailto:sage [2009/04/10(金) 08:12:20 ] >>413 ご指摘、ありがとうございます。 当方の環境では、半角英字も全て、出力されません。 やはり文字コード周りが怪しいので、PHP.iniを見直して みたいと思います。 このクラスは、utf-8などの文字コード設定と内部コードが あっている必要があるということでしょうか?
428 名前:デフォルトの名無しさん mailto:sage [2009/04/10(金) 22:38:57 ] <?php print "Type your name , please?.\n"; $a=fgets(STDIN); $b=trim($a); print "Your name is " . $b . ", ok?\n"; ?> ------------------------------ CLI用。 これを、アパッチ経由でなくて、 WindowsのMS-DOSプロンプトで動かす。 「1.php」とかの名前で保存して、 その保存したディレクトリにDOSで移動して php 1.php って打ち込む。 すると Type your name , please?. samansa Your name is samansa, ok? とかってDOSプロンプト上でphpプログラムを実行できる。
429 名前:デフォルトの名無しさん mailto:sage [2009/04/10(金) 22:39:41 ] $a=fgets(STDIN); この行でDOSプロンプトからの キーボードからの入力を受け付けることができる。 ただし日本語は文字化けする。
430 名前:デフォルトの名無しさん mailto:sage [2009/04/10(金) 23:52:51 ] なにを言いたいのかよくわからないけど、 プログラムの簡単な確認なら php -a で組込みのインタラクティブシェルが起動するので、 対話的にプログラムを実行できる あと、Windowsだと、ASConsole というのもある。これもインタラクティブシェル なんだけど、複数行の入力をサポートするので関数とかのコピペが簡単に できて結構便利 ちなみに自分の環境では>>428 のプログラムで日本語文字化けしなかった
431 名前:デフォルトの名無しさん mailto:sage [2009/04/11(土) 03:19:32 ] ソースコードをutf-8で書いて、 それをDOSプロンプトで出力したので 文字化けしたのかな? (DOSプロンプトはシフトJIS出力なので) おそらくソースコードもシフトJISで保存すれば 文字化けしないんだと思う。
432 名前:デフォルトの名無しさん mailto:sage [2009/04/11(土) 08:55:19 ] windowsのphpに脆弱性upでとよろ
433 名前:デフォルトの名無しさん mailto:sage [2009/04/11(土) 09:40:17 ] 入社面接に応募したらPHPで100行くらいの自作コードを送るように言われたんだけど、 JAVAの経験はあるのですがPHPの経験がなくてどんなの作ったらいいかわからないので、 なにか意見いただけませんか?
434 名前:デフォルトの名無しさん mailto:sage [2009/04/11(土) 10:55:16 ] 100行って微妙だな。
435 名前:デフォルトの名無しさん mailto:sage [2009/04/11(土) 11:55:38 ] 質問です。 ニュースサイトなどでよく見かける、「あるページに、内容が関連する他のページの見出しを表示」がしたいのですが、 これはどのような仕組みで実現しているのでしょうか。教えてください。
436 名前:デフォルトの名無しさん mailto:sage [2009/04/11(土) 12:41:22 ] 比較する記事から形態素解析で使われている単語を抽出して、ある程度一致したものを列挙するだけ 形態素解析エンジンはChasenとかKakasiとかMeCabとかYahooAPIとか色々あるんで 好きなのを選ぶといいよ
437 名前:デフォルトの名無しさん mailto:sage [2009/04/11(土) 12:47:44 ] 一方俺はタグを使った
438 名前:デフォルトの名無しさん mailto:sage [2009/04/11(土) 13:28:06 ] ブログツールのMovableType使ってた時は、タグの類似度でやってたな。
439 名前:435 mailto:sage [2009/04/11(土) 15:39:09 ] おー、「形態素解析」初めて聞きました。そういうのがあるんですね。 わかりました。挑戦してみます。ありがとうございます。
440 名前:デフォルトの名無しさん mailto:sage [2009/04/11(土) 18:57:59 ] >>434 100行で魅せろって意味だとしたら相当難しいな
441 名前:デフォルトの名無しさん mailto:sage [2009/04/11(土) 19:48:21 ] ある意味良課題
442 名前:デフォルトの名無しさん mailto:sage [2009/04/11(土) 20:07:46 ] 君たちやってみたまえ
443 名前:デフォルトの名無しさん mailto:sage [2009/04/11(土) 21:25:31 ] 100行ならメール専用画像アップローダぐらいは作れそうだな
444 名前:デフォルトの名無しさん mailto:sage [2009/04/16(木) 06:51:16 ] バイナリセーフでない正規表現系の関数は、 基本的に危険だから使わないほうが良い?
445 名前:デフォルトの名無しさん mailto:sage [2009/04/16(木) 06:51:58 ] 危険、という意味は、ヌルバイト攻撃されるから。 ¥nを入れられると、その後ろに’(シングルクオーテーション)等を 自由に入れられてしまう。
446 名前:デフォルトの名無しさん mailto:sage [2009/04/16(木) 07:09:31 ] 教科書読んでると、たまに 「*Windows版では動作しません」 って書いてある関数があるんだが、これを実験するには、 やはり、自分のパソコンにLinuxを入れるしか ないのだろうか?
447 名前:デフォルトの名無しさん mailto:sage [2009/04/16(木) 10:07:43 ] >>445 素のままのデータを使うなよw
448 名前:デフォルトの名無しさん mailto:sage [2009/04/16(木) 17:06:43 ] >>446 Cの時は読み飛ばした 今ならVMWare使って遊ぶ
449 名前:デフォルトの名無しさん mailto:sage [2009/04/16(木) 17:08:41 ] VMwareかぁ、、、 危険ではないのかな?
450 名前:デフォルトの名無しさん mailto:sage [2009/04/16(木) 18:11:14 ] php初心者です。 画像などのファイルをアップロードしてデータベースに格納したものをダウンロード して表示させるときにcontent-typeをつけて表示していますが、ファイルがいろいろな種類のときに ダウンロードしてきたデータのmime-typeを判定する方法があったら教えて下さい。 お願いしますm(_ _)m
451 名前:デフォルトの名無しさん mailto:sage [2009/04/16(木) 19:12:40 ] 自分のパソコンの中で判定するってこと?
452 名前:デフォルトの名無しさん mailto:sage [2009/04/16(木) 19:53:42 ] >>451 判定結果をcontent-typeの後につけて、出力をしたいと思っています。
453 名前:デフォルトの名無しさん mailto:sage [2009/04/18(土) 17:28:42 ] >>449 何が?
454 名前:デフォルトの名無しさん mailto:sage [2009/04/18(土) 18:29:25 ] >>453 Windowsが起動しなくなるとか、、、
455 名前:デフォルトの名無しさん mailto:sage [2009/04/18(土) 21:33:38 ] >>454 phpの方が危険度高いぞw
456 名前:デフォルトの名無しさん mailto:sage [2009/04/20(月) 23:10:44 ] php初心者ですがアドバイスをいただきたくm(_ _)m 今までC言語6年とJava1年やってきてますので、完全なコンピュータ素人では ないつもりです。が、Web系は関わった事が無いのでhtmlとかxmlとかは素人です。 今度担当するプロジェクトでphpを覚える必要が出てきまして、入門用の書籍を 探しています。 今日色々とPHP本を漁って、オライリーの「プログラミングPHP」が良さそうかな、 と思いました。 そこで質問が2つ。 ○先輩に「PHP5徹底攻略(マンモス本?)」を薦められたのですが、執筆された 時期が5年以上前なので、情報が古くないかと心配です。 ○上記の2冊以外でオススメの入門書がありましたら教えてください。 以上、よろしくお願いいたします。
457 名前:デフォルトの名無しさん mailto:sage [2009/04/20(月) 23:50:26 ] phpの言語仕様はC言語に毛が生えた程度。 クラスの概念がC言語には無いけど、Javaやってたようだから何とかなると考えれば、 入門書に頼らずとも、本家サイト(php.net)の言語リファレンス(www.php.net/manual/ja/langref.php )よめば、何とかなる様に思えます。 むしろ大変なのは、phpの外の世界。 html, http, セキュリティ対策(XSS, SQL-Injection等)、Javascript、CSSなど、理解しなければならないことが山の様にあります。
458 名前:デフォルトの名無しさん mailto:sage [2009/04/21(火) 00:43:24 ] >>456 俺も>>457 にほぼ同意。そんだけ経験あればマニュアルとか、買ってもリファレンス系で足りるはず。 下手に入門本とか買うとかえって混乱すると思う。(オライリー系ならいいけど) むしろWEBアプリならではのセキュリティとかMVCとかの方が面倒。
459 名前:デフォルトの名無しさん mailto:sage [2009/04/21(火) 02:53:59 ] 削除したはずの要素までファイルに記録されてしまう。削除した要素を無視する方法があったら教えてほしい。 $names["test"]=123; $names["a"]=1235; unset($names["a"]); save_namefile($names); function save_namefile($a) { $fp = @fopen("./names.txt","w"); flock($fp,LOCK_EX); foreach($a as $key => $v){ $buf = $key . "<>" . $v . "\n"; fputs($fp,$buf); } flock($fp,LOCK_UN); fclose($fp); }
460 名前:デフォルトの名無しさん mailto:sage [2009/04/21(火) 02:55:48 ] 457が言いたいことを全部言ってくれた >>459 WebProg板のくだスレで質問してた人?
461 名前:デフォルトの名無しさん mailto:sage [2009/04/21(火) 02:57:23 ] >>460 違うが。
462 名前:デフォルトの名無しさん mailto:sage [2009/04/21(火) 03:07:37 ] もしかして、既に出てる質問なのか。 もし、そうなら、そこのURLを教えてほしい。 該当する板に行ったがなかった。
463 名前:デフォルトの名無しさん mailto:sage [2009/04/21(火) 05:57:45 ] >>456 俺も似たような状況だったけど、webフレームワーク憶えたらすぐに実戦にもっていけた。 PHP憶えるついでに、CakePHPとかやってみたらどうかと思う。 MVCフレームワーク一度も使ったことないなら、CodeIgniterの書籍が超わかりやすいからお勧め CodeIgniter自体は軽量すぎてあまりオススメしないがw Amazon.co.jp: CodeIgniter徹底入門: 河合 勝彦, 鈴木 憲治, 安藤 建一: 本 www.amazon.co.jp/dp/4798116769 images-jp.amazon.com/images/P/4798116769.09.MZZZZZZZZZ.jpg
464 名前:デフォルトの名無しさん mailto:sage [2009/04/21(火) 06:09:03 ] >>456 ●はじめてのphp言語 プログラミング入門 ●独習PHP ●実践マスターPHP+MySQL ●速効!図解プログラミングPHP + MySQL
465 名前:デフォルトの名無しさん mailto:sage [2009/04/21(火) 09:56:06 ] >>456 マンモスの徹底攻略4ならPDFで公開されているから、何か買う前にダウンロードしてみたらどうだい。
466 名前:デフォルトの名無しさん mailto:sage [2009/04/21(火) 14:07:58 ] >>459 そのサンプルを実行してみると君がいったような動作には ならない。予想では 0. サンプルが実際のコードをあらわしていない (実際のコードにはつまらないタイプミスがある、など) 1. names.txtへの書き込みが失敗している 2. web上で動かしていて上書きされている
467 名前:デフォルトの名無しさん mailto:sage [2009/04/21(火) 19:05:47 ] >>464 独習PHPは、わかりにくかったでしゅ
468 名前:456 mailto:sage [2009/04/21(火) 23:13:35 ] 皆様ありがとうございます。 ここの意見も参考に色々な本を試し読みしまくって、結局「プログラミングPHP」と PHPのセキュリティに関する本を買いました。 私にとってレベルが高すぎず低すぎず、文体とか読んだ感じとかのフィーリングが 好きだったので。 今回の仕事にPEARとxmlが絡む事は確定しているんで、その辺もフォローしている本の 方が良いかな?と結構迷いましたが、基本とセキュリティ知識をある程度身につけて からにします・・・不器用なんでw
469 名前:デフォルトの名無しさん mailto:sage [2009/04/21(火) 23:13:46 ] >>466 うむ・・・。 スクリプト一式をこちらにおいておきます。 www6.atpages.jp/~autonomydoll/chat/ (chat_error.phpがうまくいかないほうです)
470 名前:デフォルトの名無しさん mailto:sage [2009/04/22(水) 00:22:51 ] >>469 すみません。後になって気付いたので訂正します × 空の要素が記録されてしまう ○ 空の要素が<>の形で記録されてしまう
471 名前:デフォルトの名無しさん mailto:sage [2009/04/25(土) 18:17:06 ] www.itmedia.co.jp/enterprise/articles/0809/10/news038.html 「PHPの「mt_rand()」機能の脆弱性では、 ユーザーが新しく作成したパスワードを 攻撃者が予測できてしまう可能性がある。」 これってどういうことかな?
472 名前:デフォルトの名無しさん mailto:sage [2009/04/25(土) 18:50:54 ] mt_randの中がどうなってるか柱泣けど 通常PCで発生させる乱数ってのは擬似乱数って言って 同じ条件なら同じ乱数が出るようなタイプの乱数だから パスワード再発行したときと同じ日時で乱数発生させたら 同じパスワード出来ちゃうとかそんな感じじゃないかね
473 名前:デフォルトの名無しさん mailto:sage [2009/04/26(日) 20:28:34 ] >>471-472 ここが分かりやすいかな。 ttp://blog.ohgaki.net/php-python
474 名前:466 mailto:sage [2009/04/26(日) 20:33:34 ] >>470 >>469 のアドレスをアクセスするとソースが見えないんで想像だけど (というか見えるようにしてもらっても全部を見る気はない w)、 「値が空の要素は除外したい」だったら foreach()のブロックの最初に if (strlen($v) == 0) continue; を追加すればいいと思う。
475 名前:デフォルトの名無しさん mailto:sage [2009/04/26(日) 22:26:20 ] <?php $link = mysql_connect('localhost', 'root', 'pass'); //データーベース コネクト $db_selected = mysql_select_db('bbb', $link); //テーブル選択 $result = mysql_query('SELECT c FROM ddd'); //クエリー発行 print mysql_result($result, 0); //表示 ?> ----------------------- これだけで、MySQLに接続して テーブルを選択して、 クエリーを発行して、 結果を表示できるよ! PHP、マジで超カンタン
476 名前:デフォルトの名無しさん mailto:sage [2009/04/26(日) 22:29:07 ] ちなみにテーブル構造です ホスト名 localhost ユーザー名 root パスワード pass データーベース名 bbb テーブル名 ddd テーブル構造 | a | b | c -------------------- 0| 111|222 | 333
477 名前:デフォルトの名無しさん mailto:sage [2009/04/26(日) 22:33:09 ] この場合、 bbbというデーターベースに接続して、 dddというテーブルを選択して、 cというカラムを選択して、 行番号0の行を選択して、 そこのデーターを取ってきて、 画面に表示した。
478 名前:デフォルトの名無しさん mailto:sage [2009/04/26(日) 22:34:51 ] いやちょっと説明違うな。 bbbというデーターベースに接続して、 dddというテーブルを選択して、 その中のcというカラムを選択して、 データーを全部取ってきた。そして その中の、行番号0の行を選択して、 そのデーターだけを画面に表示した。
479 名前:デフォルトの名無しさん mailto:sage [2009/05/02(土) 22:52:07 ] <?php $b="a"; for($i=1;$i<60;$i++): print $b++; print "\n"; usleep(1000000/2); endfor; exit; ?> ------------------------------------------------ これをCLIモードで実行すると、 ちょっとおもしろいよ。
480 名前:デフォルトの名無しさん mailto:sage [2009/05/02(土) 23:03:57 ] <?php print "文字を入力してください\n"; $in = fgets(STDIN); $c = rtrim($in); print $c . "、、、ですと?!"; ?> ------------------------------ これも実行すると ちょっと面白い例。 CLIから実行。 PHPで対話的アプリが実装できる。
481 名前:デフォルトの名無しさん mailto:sage [2009/05/03(日) 04:16:01 ] またお前か 全然成長してないな
482 名前:デフォルトの名無しさん mailto:sage [2009/05/03(日) 04:45:11 ] 俺も25年前くらいにBASICで同じようなことやって一喜一憂してたから気持ちはわかる
483 名前:デフォルトの名無しさん mailto:sage [2009/05/03(日) 11:19:40 ] ここはプログラム板。 キチガイは入れない場所ですぞ
484 名前:デフォルトの名無しさん mailto:sage [2009/05/03(日) 16:33:09 ] <?php `CLS`; ?> なんでこれで 画面がクリアされないのか、 理由がわからないづら
485 名前:デフォルトの名無しさん mailto:sage [2009/05/03(日) 16:51:34 ] 行番号がないからだろ
486 名前:デフォルトの名無しさん mailto:sage [2009/05/03(日) 18:46:26 ] >>479 笑いどころはここらへん? >exit; >?>
487 名前:デフォルトの名無しさん mailto:sage [2009/05/04(月) 17:55:58 ] MSSQLに接続できん・・・・・ もう2日はトライしてるわ・・・
488 名前:デフォルトの名無しさん mailto:sage [2009/05/04(月) 18:05:51 ] つ PDO
489 名前:デフォルトの名無しさん mailto:sage [2009/05/04(月) 18:20:54 ] >>448 mysql使ってたんだけど、コマンドラインからの操作が面倒くさすぎてMSSQLserverにしたら 2005年版は何かphpとの接続にパッチやら入れないといけないらしく、上手くいかない・・・・ あぁ〜PCやりすぎて目が痛いよう
490 名前:デフォルトの名無しさん mailto:sage [2009/05/04(月) 21:17:34 ] そんなあなたのためにphpmyadminというものがあるが使わなかったんか?
491 名前:デフォルトの名無しさん mailto:sage [2009/05/04(月) 21:32:28 ] MySQL Admnistratorでいいと思う ちゅうかなんでその理由でPostgreSQLなどに行かずに 急にSQLServerに飛ぶのか解らんが
492 名前:デフォルトの名無しさん mailto:sage [2009/05/04(月) 21:48:04 ] >>490 >>491 あ〜そんな物があったのか・・・・丸二日費やしたのが馬鹿みたいだぜ。 なんとなく目に留まったのがMSSQLだったからorz ちょっと試してみます
493 名前:デフォルトの名無しさん mailto:sage [2009/05/04(月) 22:07:18 ] xamppだったら 最初からついてるよね。
494 名前:デフォルトの名無しさん mailto:sage [2009/05/04(月) 22:19:05 ] 最近のテスト環境構築丸々入ってるよ〜系なら大抵ついてくるね>phpmyadmin というか、ほんとに便利だから入れないと移行とか大変すぎる
495 名前:492 mailto:sage [2009/05/05(火) 16:23:27 ] MySQL Admnistratorは英語って以外は中々使いやすいね。 日本語のかねやんMySQLAdmin使いたいんだけど何か接続できないから諦めた。 それにしてもphpは自分の設定であってるかどうか不安だわ。 少しでも調べないで変えると戻すのも苦労する
496 名前:デフォルトの名無しさん mailto:sage [2009/05/05(火) 17:51:51 ] 自PCの環境で完成した〜と思って、サーバにあげて実行してみたら Fatal error: Call to undefined function zip_open() ・・・まあ、PHP暦1週間の初心者なので・・・(´・ω・`)
497 名前:デフォルトの名無しさん mailto:sage [2009/05/05(火) 21:15:31 ] コマンドのインストールに失敗する前にWebmin使ってみよう! ・・・ファイアウォールの設定はしっかりとね。
498 名前:デフォルトの名無しさん mailto:sage [2009/05/05(火) 21:42:23 ] >>495 Tools→Options→GeneralOptions 右上LanguageをJapaneseにしてアプリ再起動 1%だけ日本語になるぜw
499 名前:484 mailto:sage [2009/05/09(土) 01:25:34 ] データベースには接続できるのですが、テーブルにアクセスできません・・・・。 毎回接続までしか試しておらず、MYSQLからMSSQLに設定を変えて、またMYSQLに戻した からかもわからないのですが、いつからアクセス出来なくなったのかわかりません。 どなたかエスパーしてください・・・・・何を聞いていいのかもわかりません。 INSERT INTO 生徒 (id,名前) values (0001,'鈴木'); とコマンドラインからSYSQLに同じ命令を打ったら You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'INSERT INTO c”?a?’ (id,a??a‰?) values (0001,'e?´a?¨') LIMIT 20 OFFSET 0' at line 2 とエラーが出てきました。 これはphpのエラーじゃないのでしょうか?
500 名前:デフォルトの名無しさん [2009/05/09(土) 01:59:47 ] >>499 >You have an error in your SQL syntax ってエラーが出てるから、SQL文に問題あるのでは?
501 名前:デフォルトの名無しさん mailto:sage [2009/05/09(土) 02:03:30 ] >>499 項目名にマルチバイト文字なんて使えるのか?
502 名前:デフォルトの名無しさん mailto:sage [2009/05/09(土) 02:19:37 ] >>499 `項目名` あと mysql_real_escape_string を忘れずに
503 名前:デフォルトの名無しさん mailto:sage [2009/05/09(土) 02:32:09 ] >>502 それはバッククオートで囲め、て意味? ただコードを書くだけでは意思が伝わらないことが多いよ
504 名前:デフォルトの名無しさん [2009/05/09(土) 02:33:30 ] テーブル名もマルチバイト文字だな。
505 名前:デフォルトの名無しさん mailto:sage [2009/05/09(土) 02:56:10 ] SQLのオブジェクトにマルチバイト文字を使うのは面倒。 エンコーディングでいかようにでも化けちまうきがすんだけど ''で括ってもどうなるか、EUCになるならいいが、最近はUTF-8もあるから。
506 名前:デフォルトの名無しさん mailto:sage [2009/05/09(土) 02:58:37 ] >>503 テーブル名や項目名をバッククオートで囲む、これ癖つけておいたほうがいいよ `table`.`index` という感じで PostgreSQLから移ってきた時に、これで丸2日ほどつぶしてしまったよ俺。。。
507 名前:デフォルトの名無しさん mailto:sage [2009/05/09(土) 03:36:11 ] 別にマルチバイトでも問題ないよ OracleやAccessじゃよくある
508 名前:デフォルトの名無しさん mailto:sage [2009/05/09(土) 11:07:26 ] ただ文字化けしてるだけじゃん。文字コードの設定を統一すればいいよ。 > とコマンドラインからSYSQLに同じ命令を打ったら コマンドライン版の PHP.EXE のこと? PHPで直接、SQL の INSERT 文が発行できたっけ??? もしコマンドライン版の mysql.exe なら、mysql.ini で文字コードを設定する。 自分が何をしているのか、相手に伝えられないと答えようがないよ。
509 名前:499 mailto:sage [2009/05/09(土) 14:24:17 ] 皆さんありがとうございます。 マルチバイトを使わずにアクセスした所、アクセス出来たので設定がおかしいのだと思います。 あああああああああああああああああ何でこんなに設定がめんどくさいんだpg歩ディfgしあhふぃさdhfじゃs」dpfは 環境設定だけでプログラム全く書いてねえぇぇぇぇぇぇl!!!!!!!!!!!!!!!!!!!
510 名前:デフォルトの名無しさん mailto:sage [2009/05/09(土) 15:52:55 ] わからんなら、何かフレームワーク使った方が楽だし憶えやすいぞ。
511 名前:デフォルトの名無しさん mailto:sage [2009/05/09(土) 16:33:32 ] 設定が面倒くさいんじゃなくてマニュアル読んで手順通り設定してないだけだろ 文字コードさえ一致してればマルチバイトであろうがなんであろうが動く むしろマルチバイトで動かないけどアスキーにしたら動いたってのは何も解決して無くて まだどこかで文字コードの不一致が起きたまま動いていると言うことだ
512 名前:デフォルトの名無しさん mailto:sage [2009/05/09(土) 16:44:33 ] データベース名やテーブル名、フィールド名に2バイト文字を使うのは今では普通なのか? 今まで使ってはいけないと思って使ってなかったけど・・・。 テーブル名やフィールド名を考えるのがメンドイんだよな〜
513 名前:デフォルトの名無しさん mailto:sage [2009/05/09(土) 16:58:02 ] 好きか嫌いかだろうな。 別にローマ字でもいいと思ってるし。 要は間違えなければいい。
514 名前:デフォルトの名無しさん mailto:sage [2009/05/09(土) 17:18:10 ] 今では普通じゃなくて昔から使えたし別に今更禁止する意味もない 禁止なのは開発の規約上アルファベットで揃えるから禁止とか 日本人しか理解できないから禁止とかそういう理由であって システム的に動かないから禁止ってわけではない
515 名前:デフォルトの名無しさん mailto:sage [2009/05/09(土) 17:19:12 ] あとはシステム的に開発環境などをスキル低い人が設定できないから トラブル避けるために禁止ってのもあるけど
516 名前:デフォルトの名無しさん mailto:sage [2009/05/09(土) 18:01:45 ] DBで設定してる文字コードと違うことは良くあるね だから接続したあとに設定するわけで MySqlだけど置いときます <?PHP //DB接続 $_DB = mysql_connect( "localhost", "root" )or die("Could not connect"); //テーブルを選択 mysql_select_db( "table" ); //DBとの接続間で使う文字コードをセット mysql_set_charset("utf8"); ?>
517 名前:デフォルトの名無しさん [2009/05/09(土) 18:07:32 ] 仕事で日本語テーブル名、日本語項目名で作られたデータベース使ったことあるけど、最低、最悪だったよ SQL文書くのに面倒くさくて、見たくもない、日本語禁止。
518 名前:デフォルトの名無しさん mailto:sage [2009/05/09(土) 18:10:37 ] 秀丸で手入力でもしてるのか? ツール使えよ 仮にカラム名が英文だったとしても打ち間違ってバグの元になるぞ
519 名前:デフォルトの名無しさん mailto:sage [2009/05/09(土) 22:24:57 ] 移植性を考えるとマルチバイト文字はオヌヌメできぬ。
520 名前:499 mailto:sage [2009/05/10(日) 00:55:00 ] スレチギリギリにも関わらず皆さん本当にありがとうございます。 テーブル名やカラム名をマルチバイトを使わずに、挿入するデータだけを マルチバイトを使ったら、挿入できたのですがテーブル内容を表示するとき 文字化けが起こりました。 また、mysql_uery,mysqli_set_charset関数はエラーが出て使えませんでした・・・。 Call to undefined function mysql_query() と出ます。 環境は PHP Version 5.2.8 Apache 2.0.63 NetBeans 6.5 MySQL 5.1 MySQL Administrator です
521 名前:デフォルトの名無しさん mailto:sage [2009/05/10(日) 01:00:51 ] つ >むしろマルチバイトで動かないけどアスキーにしたら動いたってのは何も解決して無くて >まだどこかで文字コードの不一致が起きたまま動いていると言うことだ
522 名前:デフォルトの名無しさん mailto:sage [2009/05/10(日) 01:01:28 ] なんか初心者スレ案内したほうがいいような気がしてきた
523 名前:デフォルトの名無しさん mailto:sage [2009/05/10(日) 01:04:16 ] >>520 ちゃんとphpとmysql(のDB)と文字コード合わせてる?
524 名前:デフォルトの名無しさん mailto:sage [2009/05/10(日) 01:05:49 ] PHPの文字周りは難しいので ある程度の学習が必要です。 ttp://www.oreilly.co.jp/books/9784873113654/ 個人的には、全文字エンコードを統一し、 フレームワークの利用を推奨です。 ・全文字エンコードの例 htmlのcharset phpのファイル php.ini DBのcharset
525 名前:デフォルトの名無しさん mailto:sage [2009/05/10(日) 01:56:29 ] こういう場合にSQL周りをクラスでラップしてると 文字コード関係の問題解決は楽なのよねぇ
526 名前:デフォルトの名無しさん mailto:sage [2009/05/10(日) 02:26:38 ] リリース後に運用でgdgdになって火消しに行くこと多いんだけど PHPの場合DB周りも含めて実装が意味不明な事が多いんだよねぇ せめてPEARでも使ってよと思うんだけど、何故かそうしてる所が少ない… 独自実装の方がどう考えても面倒でしょうに
527 名前:デフォルトの名無しさん mailto:sage [2009/05/10(日) 02:40:24 ] mysqli_set_charset を使うには php に mysqli をインストールすること。 デフォルトではインストールされない。 mysql_uery なんて関数ははじめから無い。 たぶん mysql_query か mysqli_query の間違いだろ。 とにかく、php.ini、my.ini の設定を最初っからやりなおせ。 そうすれば文字化けも直る。 入門書・解説サイトなどをよく読め。
528 名前:デフォルトの名無しさん mailto:sage [2009/05/10(日) 02:42:07 ] PEAR など既存のライブラリを使いたがらないのは 他人の書いたコードのデバッグをしたくないからだろ。 PEAR に100%バグが無いと保証あるなら別だが。
529 名前:デフォルトの名無しさん mailto:sage [2009/05/10(日) 02:46:57 ] うちはSmartyぐらいしか使ってないなぁ
530 名前:デフォルトの名無しさん mailto:sage [2009/05/10(日) 02:47:24 ] こんなとこだと思うw ・有名なライブラリの存在を知らない。 ・自分が作ったほうがバグが少ないという 根拠のない自信。 ・作ってみたい。 ・コスト意識がない。
531 名前:デフォルトの名無しさん mailto:sage [2009/05/10(日) 02:55:26 ] 最近はメンテや機能追加ばっかりだから 追加でライブラリ使うことを向こうから止められる 開発楽になりますよって言っても聞かないしー
532 名前:デフォルトの名無しさん mailto:sage [2009/05/10(日) 02:59:47 ] その辺のSI会社のプログラマが書いたライブラリより PEARにバグが無い確率の方が低いだろJK
533 名前:デフォルトの名無しさん mailto:sage [2009/05/10(日) 03:01:39 ] PERA_DBやPEAR_MDBに今さら重大なバグあったら世界がひっくり返るわw 少なくとも、文字コードが良く解りませんって言ってる奴が 直接SQL発行するよりも1億倍マシ。
534 名前:デフォルトの名無しさん mailto:sage [2009/05/10(日) 03:02:38 ] >>532 PEARにバグが有る確立の方が低い の間違いか?
535 名前:デフォルトの名無しさん mailto:sage [2009/05/10(日) 03:05:49 ] 日本語が不自由だからPEAR()笑なんてカスみたいな勝手ライブラリ使うんだろ どう考えても上級PGがノウハウもって書いた独自ライブラリの方が優れてる
536 名前:デフォルトの名無しさん [2009/05/10(日) 03:06:37 ] >>500 ですけど、朝まで続くの?
537 名前:デフォルトの名無しさん mailto:sage [2009/05/10(日) 03:14:08 ] >>533 ペラDBってなんですか?www
538 名前:デフォルトの名無しさん mailto:sage [2009/05/10(日) 05:17:55 ] <?php $a = mysql_connect(localhost,root,pass); $d= mysql_select_db(aaa,$a); for ($index = 1; $index <= 100; $index++) : $e=rand(); $f=rand(); $sql = "insert into bbb (id,name,value) VALUES ('','$e','$f') "; $c = mysql_query($sql,$a); endfor; ?> ---------------------------------- ↑このスクリプトを実行すると、 データーベースに100のレコードを追加する。 idはオートインクリメントで、バリューはランダムで生成。 できあがてから、phpmyadminで見ると、すげーおもしろいよ。
539 名前:デフォルトの名無しさん mailto:sage [2009/05/10(日) 05:20:16 ] データーベース構成 サーバー localhost ユーザー名 root パスワード pass データーベース名 aaa テーブル名 bbb テーブル構成 id | name | value idはプライマリーキーで、 オートインクリメント。
540 名前:デフォルトの名無しさん mailto:sage [2009/05/10(日) 05:38:32 ] 面白くはないと思うけど
541 名前:デフォルトの名無しさん mailto:sage [2009/05/10(日) 05:39:06 ] ×自分が作ったほうがバグが少ないという ○自分が作ったライブラリなら、バグ出ても自分で直せる
542 名前:デフォルトの名無しさん mailto:sage [2009/05/10(日) 05:40:54 ] PEAR_DBくらい何処でも使われてるライブラリなんて そもそも使って困るようなバグなんて絶対にないし 仮に万が一出ても速攻で修正されるわ
543 名前:デフォルトの名無しさん mailto:sage [2009/05/10(日) 05:44:38 ] >>541 次の行もみてねw あと>>530 は、オープンソース限定の発言でした。>失礼
544 名前:デフォルトの名無しさん mailto:sage [2009/05/10(日) 05:57:14 ] <?php $a = mysql_connect(localhost,root,pass); mysql_select_db(aaa,$a); $d = rand(1,300); $e = mysql_real_escape_string($d); $sql = "select name from bbb where id='$e' "; $b = mysql_query($sql); $c = mysql_fetch_assoc($b); print_r($c); ?> ------------------------------------------ ↑これがデーターを 取り出すときのコードね。 データーベース構造は>>539 と同じ。
545 名前:デフォルトの名無しさん mailto:sage [2009/05/10(日) 06:18:35 ] <?php $a = mysql_connect(localhost,root,pass); mysql_select_db(aaa,$a); $d = rand(1,300); $e = mysql_real_escape_string($d); print "id=" . $e; print "<br>"; $sql = "update bbb set name='12345' ,value='67890' where id='$e' "; $b = mysql_query($sql); var_dump($b); ?> ------------------------------------------------------------------ ↑これが、データーをアップデートするときのコード。 データーベース構造はさっきとおなじ。
546 名前:デフォルトの名無しさん mailto:sage [2009/05/10(日) 06:20:09 ] これで、SELECT,INSERT,UPDATE、の 3つの構文が使えるようになりました。 あとはもうオレ様無敵状態。
547 名前:デフォルトの名無しさん mailto:sage [2009/05/10(日) 06:22:08 ] >>546 つせめてPEARでも使ってよと思うんだけど
548 名前:デフォルトの名無しさん mailto:sage [2009/05/10(日) 06:23:16 ] >>546 DELETE あと何が凄いってコネクションクローズしてないことだな
549 名前:デフォルトの名無しさん mailto:sage [2009/05/10(日) 06:38:13 ] PDOをつかえば、sqlサーバ入れ替えられるよって云ってみたが、 お勧めのSQL鯖との親和性を証明できぬ。
550 名前:デフォルトの名無しさん mailto:sage [2009/05/10(日) 06:55:33 ] SQLサーバってまさかDBMSのこと?
551 名前:デフォルトの名無しさん mailto:sage [2009/05/10(日) 07:37:23 ] deleteとかって、 普通、使わないと思うんだよね。
552 名前:デフォルトの名無しさん mailto:sage [2009/05/10(日) 08:17:10 ] なんで?
553 名前:デフォルトの名無しさん mailto:sage [2009/05/10(日) 09:13:27 ] 確かにupdateで削除フラグ立てるケースが多いな。メンテ時とかに一括削除したり。
554 名前:デフォルトの名無しさん [2009/05/10(日) 12:29:40 ] スレ間違いならスマン PHP4を使ってるんだが、 $output = '<emoji=1>'; print($output); のようにすると、<emoji=1>が出力されない。空。 <br />のようなHTMLは出力されるけど、独自タグが出力されない。 これって、サーバー側とかPHPで何か設定とかあるのか?
555 名前:デフォルトの名無しさん mailto:sage [2009/05/10(日) 14:44:16 ] >>553 DBによってはupdateって、コピー先のデータを書き換え、元のところに システム側でのDeleteのフラグを立てるんだよね この辺は仕様把握しておかないとボトルネックになる ウチだと元に戻せること前提だから、消すこと事態がないんだけど
556 名前:デフォルトの名無しさん mailto:sage [2009/05/10(日) 15:22:12 ] ホスト変数が使えない旧mysql APIとか へんてこ仕様山盛りのunified ODBC APIは もう捨てちゃえばいいのに。
557 名前:デフォルトの名無しさん mailto:sage [2009/05/10(日) 15:33:05 ] >>474 サンクス。その方法でやったらうまくいった。
558 名前:デフォルトの名無しさん mailto:sage [2009/05/10(日) 23:51:00 ] 今日はOOPの勉強するかな。
559 名前:デフォルトの名無しさん mailto:sage [2009/05/11(月) 00:20:27 ] もしかして、 クラスの、メンバ変数定義のところで、 $a=$a*2; とかって、計算をしたら、ダメなのかな?
560 名前:デフォルトの名無しさん mailto:sage [2009/05/11(月) 00:24:14 ] やったこたないが、検証してみれば分かるだろ?
561 名前:デフォルトの名無しさん mailto:sage [2009/05/11(月) 20:26:30 ] マニュアル読めば分かるだろ?
562 名前:デフォルトの名無しさん mailto:sage [2009/05/11(月) 22:52:36 ] ここはプログラム板ですよ。 「マニュアル読め」しかいえないキチガイは かえってください!
563 名前:デフォルトの名無しさん mailto:sage [2009/05/11(月) 23:33:51 ] じゃあ google-toi, s'il te plait
564 名前:デフォルトの名無しさん mailto:sage [2009/05/12(火) 01:13:37 ] >>559 メンバー変数定義? class test { private $a = $a * 2; private $b; function __construt() { ~~~~ } } ってことか?
565 名前:デフォルトの名無しさん mailto:sage [2009/05/12(火) 01:15:52 ] =w=)コンストラクタでやりゃいいだろ・・・
566 名前:デフォルトの名無しさん mailto:sage [2009/05/12(火) 01:46:58 ] >>565 おお。 そのためにコンストラクタってあるんだ?
567 名前:デフォルトの名無しさん mailto:sage [2009/05/12(火) 01:51:38 ] なんなんだが・・・
568 名前:デフォルトの名無しさん mailto:sage [2009/05/12(火) 02:50:29 ] わしゃーてっきり self:$:hogera かと
569 名前:デフォルトの名無しさん mailto:sage [2009/05/12(火) 19:00:13 ] つーか前後関係の説明がさっぱりないから、意味不明
570 名前:デフォルトの名無しさん mailto:sage [2009/05/12(火) 20:13:44 ] >>562 プログラム板だとなぜにマニュアル読まないんだ? あと,マニュアルに書いてあることをなぜわざわざ質問するんだ?
571 名前:デフォルトの名無しさん mailto:sage [2009/05/12(火) 21:36:41 ] 「マニュアル」 しか言えない人はこなくていいです。 帰ってください。
572 名前:デフォルトの名無しさん mailto:sage [2009/05/12(火) 21:50:12 ] まあその程度でも給料もらえるんだよね、PHPプログラマって。 ドキュメント読んで探すより回りのデキる奴に聞いたほうが早い (邪魔だが朝出した簡単な課題に1日かけられるよりマシかも知れない)
573 名前:デフォルトの名無しさん mailto:sage [2009/05/12(火) 21:53:46 ] 他人を逆引きリファレンスにするのはだーれだ! おれら、生き字引じゃ、なーいんだ!
574 名前:520 mailto:sage [2009/05/13(水) 00:42:29 ] 未だに設定が上手くいきません・・・・ skip-character-set-client-handshake を書いてみたりしたのですが、全く変化ありません。 色々なサイトの情報を全て試したので元に戻せるのかも微妙です^q^ どこかにまとめて記述してあるサイトを教えてください。
575 名前:デフォルトの名無しさん mailto:sage [2009/05/13(水) 01:10:26 ] 何を? っていうか現状どうなってるか書かねーからこっちも何も言いようが無いんだけど
576 名前:デフォルトの名無しさん mailto:sage [2009/05/13(水) 07:22:14 ] >>574 >色々なサイトの情報を全て試したので元に戻せるのかも微妙です 戻せないなら全部消してインストールしなおしがおすすめです。 これを機会にバージョン管理ツールの使い方をちょっとかじって 楽に戻せるようにしておきましょう。
577 名前:デフォルトの名無しさん mailto:sage [2009/05/13(水) 20:04:31 ] >>574 最初の質問がどこにあるかわからないから、 もう一回最初から質問書いて。
578 名前:デフォルトの名無しさん mailto:sage [2009/05/13(水) 21:33:33 ] svn使ってるけど、本番サーバのフォルダにリポジトリと同期させるのが コマンドラインでやるしかなくなったことでひるんでる。 作業用クライアントマシンにPHP環境仕込んだけど、やっぱサーバの 環境とはかなり違う・・・憂鬱。
579 名前:デフォルトの名無しさん mailto:sage [2009/05/13(水) 21:44:08 ] svnで本番環境に展開するのと クライアントにPHP入れたことに何か関連性があるのか?
580 名前:デフォルトの名無しさん mailto:sage [2009/05/13(水) 22:33:48 ] >>579 ない。
581 名前:デフォルトの名無しさん mailto:sage [2009/05/13(水) 22:34:42 ] $a_a++; ってやったら、プラスされないんだけど、 なんで?
582 名前:520 mailto:sage [2009/05/13(水) 22:45:39 ] php.ini default_charset = "UTF8" extension=php_mbstring.dll mbstring.language = Japanese mbstring.internal_encoding = UFT8 mbstring.http_output = UFT8 my.ini default-character-set=utf8 mysql.default_charset = UTF-8 上記を設定したのですが、MySQLにマルチバイト文字を追加しAdministoratorなどで見てみると文字化けが起こります。 やりたい事は、マルチバイトでレコードの追加と表示とブラウザへの表示です。 フレームワークのコード設定がおかしいのでしょうか? 環境↓ PHP Version 5.2.8 Apache 2.0.63 NetBeans 6.5 MySQL 5.1 MySQL Administrator
583 名前:デフォルトの名無しさん mailto:sage [2009/05/13(水) 22:46:38 ] UFT8
584 名前:デフォルトの名無しさん mailto:sage [2009/05/13(水) 22:53:04 ] > MySQLにマルチバイト文字を追加し 発行したSQLくらい書け
585 名前:デフォルトの名無しさん mailto:sage [2009/05/13(水) 23:16:26 ] >>583 早速直しました。ありがとうございます。 >>584 INSERT INTO `test` (id,name) values (0012,'ああ') でphpから挿入しようと試みました。 マルチバイト以外は正常に挿入できたので文法に間違いはないと思います。 utf8で全て揃えたら今度は挿入時にエラーが発生するようになってしまいました・・・・
586 名前:デフォルトの名無しさん mailto:sage [2009/05/13(水) 23:31:22 ] >>585 ・・・・・・・・・・。で、エラー文を書く気は無いのかい。
587 名前:デフォルトの名無しさん mailto:sage [2009/05/13(水) 23:34:07 ] PHP暦2週間でくだらない質問すいません。 File_Archive::extract ↑このコロン二つってどういう意味なんでしょう? 文法とか調べたけど全然載ってないので・・・・
588 名前:デフォルトの名無しさん mailto:sage [2009/05/13(水) 23:39:19 ] >>586 すましえん try{ $dbh=new pdo($dns,$user,$password); $st=$dbins->query("INSERT INTO `test` (id,name) values (0012,'ああ');"); if($st){ print "よい"; } else{ print "だめ"; var_dump($st); } }catch(pdoexception $e){ print"エラー :".$e->getMessage(); die(); } で実行すると だめbool(false) と出てきます。 少し前までは文字化けしながらも挿入できたのですが・・・
589 名前:デフォルトの名無しさん mailto:sage [2009/05/13(水) 23:41:55 ] >>585 INSERT INTO `test` (`id`,`name`) values ('0012','ああ'); こうじゃダメかい?
590 名前:デフォルトの名無しさん mailto:sage [2009/05/13(水) 23:42:19 ] >>587 親クラスのメソッドとか、メンバに アクセスするってこと。 たとえば 親クラスA{ unko- } だったら、子クラスがBだったら、 親クラスAのメソッドunko-にアクセスしたかったら、 A::unko- って書く。
591 名前:デフォルトの名無しさん mailto:sage [2009/05/14(木) 00:00:59 ] >>589 出来ませんでした・・・。 INSERT INTO `test` (id,name) values (0012,'aa'); にするとすんなり挿入できるのですが・・・・ utf8 UTF8 UTF-8 など表記の違いがあるのでしょうか
592 名前:デフォルトの名無しさん mailto:sage [2009/05/14(木) 00:05:55 ] ソースがutf8nじゃ無いとか面白いことしてないよな。
593 名前:デフォルトの名無しさん mailto:sage [2009/05/14(木) 00:13:44 ] >>591 うーん、とりあえず自分の晒してみる $query = " INSERT INTO inline ( `day_index`, `write_day`, `edit_day`, `text`, `flag` ) VALUES ( ". $ID .", ". time() .", ". time() .", '". mysql_real_escape_string( $post_array["text"] ) ."', '1' ) ";
594 名前:デフォルトの名無しさん mailto:sage [2009/05/14(木) 00:25:09 ] >>592 sjisだったりしてなぁ。
595 名前:デフォルトの名無しさん mailto:sage [2009/05/14(木) 00:40:15 ] staticキーワード ttp://php.plus-server.net/language.oop5.static.html
596 名前:デフォルトの名無しさん mailto:sage [2009/05/14(木) 00:52:53 ] >>591 phpinfoで設定確認をされました?
597 名前:デフォルトの名無しさん mailto:sage [2009/05/14(木) 00:55:16 ] PHPてBOMに対応してないんだ、 勉強になった>結構はまりますよね。
598 名前:デフォルトの名無しさん mailto:sage [2009/05/14(木) 01:12:33 ] >>591 あと、mysql_set_charset関数は、ためしました? mysqli_set_charseじゃないよ。 ttp://www.phppro.jp/phptips/archives/vol42/1
599 名前:デフォルトの名無しさん mailto:sage [2009/05/14(木) 01:17:08 ] すみません、>>598 は間違いかも。 ttp://arumtaunsaram.tumblr.com/post/102893729/php-mysql
600 名前:デフォルトの名無しさん mailto:sage [2009/05/14(木) 01:29:38 ] ごめんなさい、ごめんなさい。 >>599 も見なかったことに。。。 ROMにもどります・・・ ttp://blog.ohgaki.net/set_namesa_mcb_asc
601 名前:デフォルトの名無しさん mailto:sage [2009/05/14(木) 01:53:26 ] >>600 の続き。(連投すみません) また違う指定されてる方もおられました。 MySQL、PDOとSET NAMESの組み合わせで、 鉄板の指定てあるのかな? ttp://d.hatena.ne.jp/jrofbyr/20081228/p1
602 名前:デフォルトの名無しさん [2009/05/14(木) 09:53:34 ] for文とwhile文ってみんな使い分けてるの? for文の方がコード少なくていいから、 while文使った事ほぼないんだけど。
603 名前:デフォルトの名無しさん mailto:sage [2009/05/14(木) 11:21:04 ] というか用途が全然違うでしょ
604 名前:デフォルトの名無しさん [2009/05/14(木) 12:14:15 ] while文で例えばインクリメントで加算していく処理とか。
605 名前:デフォルトの名無しさん [2009/05/14(木) 13:51:30 ] while は テキストファイルを読み込む時 とか DBからデータを取り込むとき hashの処理とか が多い(while not eof) for は配列処理とか(個数が決まっているとか)が多いかも
606 名前:デフォルトの名無しさん mailto:sage [2009/05/14(木) 16:41:49 ] foreachもたまには思い出してあげてください・・・
607 名前:デフォルトの名無しさん [2009/05/14(木) 17:58:22 ] すまん そだね
608 名前:デフォルトの名無しさん mailto:sage [2009/05/14(木) 20:03:55 ] >>602 ファイルからデーター抜くときはwhile
609 名前:520 mailto:sage [2009/05/14(木) 20:29:30 ] レス下さった方ありがとうございます。 phpinfoで確認した所、ちゃんとutf8に設定されていました。 mysql_set_charset()などの関数が使えればいいのですが、別途にインストールが 必要なのでしょうか? Fatal error: Call to undefined function mysql_set_charset() とエラーが出てしまいます。
610 名前:デフォルトの名無しさん mailto:sage [2009/05/14(木) 20:40:03 ] >>609 ちなみにPHPのバージョンは? 古いと関数自体ないよ ttp://www.phppro.jp/phptips/archives/vol42/1 >mysql_set_charset関数はPHP-5.2.3から追加された >MySQLのクライアント側の文字コードまで設定することができる関数です。
611 名前:デフォルトの名無しさん [2009/05/14(木) 23:50:19 ] sql でcharset指定できなかったっけ? #postgresと間違えているか?
612 名前:520 mailto:sage [2009/05/15(金) 00:20:02 ] 諦めて一度全てアンインストールしてみます。 XAMMPでまとめて入れてみます。
613 名前:デフォルトの名無しさん mailto:sage [2009/05/15(金) 01:00:43 ] XAMMPインストールしたらデフォルトでマルチバイトが扱えました!!!!!1111 どうもお騒がせしました。 これからもよろしくお願いします
614 名前:デフォルトの名無しさん mailto:sage [2009/05/15(金) 01:06:07 ] いままでxampp使ってなかったの?
615 名前:520 mailto:sage [2009/05/15(金) 01:15:09 ] すいません、追記ですが $dbh->query("SET NAMES 'utf8' ;") を書いたらマルチバイトが扱えるようになりました。 書かなかったら使えませんでした。 >>614 phpの入門書的な本に、それぞれ単体でインストールする方法が載っていたのでXAMMPは存在自体 知りませんでした。 設定をいじくると怖いので、しばらくこれでいきます。 どうせローカルでの用途しかないので。 皆さんありがとうございました。
616 名前:デフォルトの名無しさん [2009/05/15(金) 07:32:52 ] 一応 my.cnf の default-character-set はちゃんと調べたほうが いいと思う