トップページphp
1001コメント279KB

【PHP】下らねぇ質問はID出して書き込みやがれ 116

レス数が1000を超えています。これ以上書き込みはできません。
0001nobodyさん2012/02/26(日) 11:49:58.54ID:???
質問者はまず>>1を良く読むこと(必須!)
過去スレ、関連スレ、FAQなどは>>2-10辺り
次スレは>>980が立てる。10分以内に立たない場合、宣言してから立てたい人が立てること。

◆前スレ
【PHP】下らねぇ質問はID出して書き込みやがれ 115
http://kohada.2ch.net/test/read.cgi/php/1327005803/

◆質問用テンプレ
【OS名】CentOS
【PHPのバージョン】5.3
【連携ソフトウェア】MySQL ImageMagick
【質問内容】

◆質問する時の注意
・ スレを上げて自分のIDを表示させること。(メール欄に何も記述しない。専ブラのsageチェックを外す)
・ 己の行った操作、変更などを詳しく明記すること。
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
・ 質問者として、態度をわきまえること。
・ 事前に関連リンクの公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。
(PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。)

◆質問後の注意
・2回目以降は最初に質問した際のレス番号を入れて、偽者防止に必ずIDを表示させること。
・解決しなくても回答をもらった場合はお礼を言うこと。
 (荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。)

◆回答者への注意
・誰にレスしているのか分からないと困るので、>>(アンカー)をつけて回答すること。

【その他諸注意】
・SQL・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
0951nobodyさん2012/03/20(火) 17:39:45.04ID:???
dat落ちしてるな
smartyスレ立てればよろし
0952nobodyさん2012/03/20(火) 20:19:21.63ID:kQLmWU30
PHP+MySQLの型についての質問です。
MySQLのint型のカラム(例、id番号格納用)からPHPでidを取得する場合には、
int型、string型のどちらになるのが普通でしょうか?

同一コードなのに、動作がおかしいので、var_dump()で確認すると、
レンタルサーバー(PHP5.2.5)では、string型になっています。
逆に、ローカルのXAMPP(PHP5.3.5)では、int型になっています。
環境が違うと型も異なるのでしょうか?
0953nobodyさん2012/03/20(火) 22:34:30.30ID:RhIqQwV3
すみません教えてください
http://smallworld.west-tokyo.com/blog/2011/02/php-study-6.html
このソースではどうやってPOSTされた物をセッション変数に入れているのですか?
0954nobodyさん2012/03/20(火) 22:59:01.27ID:XuJ1KzYb
>>953
registCheck.php
でうけとったのをregistForm.phpに渡している。
>>952
レンサバの環境がわからんとなんともいえん

09559532012/03/20(火) 23:05:30.24ID:RhIqQwV3
>>954
それはregistForm.phpの2行目から3行目あたりで行われているということですよね?
$_SESSION['username']=$_POST['username']みたいなのが見当たらないのですが、なぜ渡せるのですか?
0956nobodyさん2012/03/20(火) 23:30:39.79ID:???
>>952
5.3からmysql関連のドライバの扱いが変わってるんでその辺かなぁ。
いろいろ変わってるんだけどそーいうのが簡単に調べられねーんだよな。

>>955
get_magic_quotes_gpcだの、いつの時代のだよと思ったら去年の記事・・・
いろいろ変だし、そこ見るのはやめるのを俺はお勧めする。
09579532012/03/20(火) 23:37:12.10ID:RhIqQwV3
>>956
わかりました。他の所を参考してみます。
ありがとうございました・
09589522012/03/21(水) 00:43:26.28ID:pFyJJ5uV
>>954 >>956
レスありがとうございます。
やはりバージョンの違いが原因と考えた方がよさそうですね。
直感的には、MySQLのカラムがintなら、PHPで取得したデータも
intというのが、わかりやすいです。
また、これからは、5.3以上のサーバーが増えそうなので、
5.3でも動くように変更してみます。
0959nobodyさん2012/03/21(水) 04:15:32.77ID:???
うちのWindows+PHP5.3でもなぜかintで返る
レンサバの5.3だと仕様通りstringが返るから、OSの問題なんかね
0960nobodyさん2012/03/21(水) 07:58:14.83ID:NtYwhUXp
ブラウザで

Resource id #1

と表示されるんですが、これはどういう意味ですか?
0961nobodyさん2012/03/21(水) 09:08:59.69ID:???
リソース型をechoしたってだけで
意味を聞かれても答えられるようなものではない
リソースの概念については
ttp://php.net/manual/ja/language.types.resource.php
0962nobodyさん2012/03/21(水) 09:13:44.19ID:???
>>960
fopenの返り値あたりを表示してんじゃねーの?
http://jp.php.net/manual/ja/language.types.resource.php
09639522012/03/21(水) 10:43:08.42ID:Jp6FiHgK
>>959
coreseverでPHP5.2から5.3へのバージョンアップが可能だったので、
試したところ、5.3にしても、string型が返ってきました。
おっしゃるとおり、PHPのバージョンの問題でなく、OS、MySQL側などの問題のようです。

string型で返るのが仕様なら、string型で統一したいと思います。
WIN+XAMPPの組み合わせだと、int型が返るのかもしれませんね。
0964(498===523===525)===(498=523=525)2012/03/21(水) 11:16:59.46ID:4pswCVuc
>>952
DBに何を使ってアクセスしているか書きましょうよ。
値取るまでのコードを全部書いたらいい。
0965nobodyさん2012/03/21(水) 11:19:43.80ID:???
基本的にDBとのやり取りは文字列のみになる
それ以外で取得できるのはクライアント側の
中間のライブラリとかで処理してる。
09669522012/03/21(水) 11:52:52.10ID:Jp6FiHgK
>>964
PDOを使ってアクセスしています。コードは、こんな感じです。

/**** DB接続PDO ****/
$dsn = 'mysql:host='. SERV .';dbname='. DBNM ;
try {
    $dbh = new PDO($dsn, USER, PASS) ;
    $dbh->query('SET NAMES utf8') ;
    $dbh->setAttribute(PDO::ATTR_EMULATE_PREPARES, FALSE) ;
    $dbh->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_WARNING ) ;
} catch (PDOException $e) {
    die('db error.');
}

$sql = 'SELECT * FROM users WHERE mail=:mail AND pass=:pass AND state=1' ;

$stmt = $dbh->prepare($sql);
$stmt->bindParam(':mail', $mail, PDO::PARAM_STR);
$stmt->bindParam(':pass', $pass, PDO::PARAM_STR);
$stmt->execute();
if ($row = $stmt->fetch(PDO::FETCH_ASSOC)) {         
    $_SESSION['id']  = $row['id'] ;
    $_SESSION['user'] = $row['user'] ;
0967(498===523===525)===(498=523=525)2012/03/21(水) 12:41:11.44ID:4pswCVuc
>>966
自動変換に任せず、第三引数($type)を指定して型変換すべき。
http://jp2.php.net/manual/ja/pdostatement.bindcolumn.php
0968nobodyさん2012/03/21(水) 12:52:19.15ID:???
いつまでコテつけて恥をさらすのか
0969nobodyさん2012/03/21(水) 13:22:07.06ID:???
>>967

>>966を全部見て理解してからレスしてるのか?
09709522012/03/21(水) 14:10:30.65ID:g60QnSuj
>>967
便利そうなメソッドありがとうございます。
データ取得時にも型を指定できるのですね。勉強になります。
ただ、これだと、(int)とか(string)して型キャストしてやる方が
書き換えが楽そうです。
$_SESSION['id']  = (int)$row['id'] ;
$_SESSION['id']  = (string)$row['id'] ;
0971(498===523===525)===(498=523=525)2012/03/21(水) 14:10:42.72ID:4pswCVuc
>>968
スレッドが終わるまで。

>>969
てきとーですいません。違うんですか。
0972nobodyさん2012/03/21(水) 15:16:43.78ID:UYYnFQWA
たすけてください!
if文を実行するとerrorが出ます
訳が解らないです

[CODE]

if((498===523===525)===(498=523=525)){
    echo "うがああああ";
}

[ERROR]

Parse error: syntax error, unexpected T_IS_IDENTICAL in C:\xampp\htdocs\test\498.php on line 498
0973nobodyさん2012/03/21(水) 15:27:45.37ID:???
Parse error: syntax error, unexpected T_IS_IDENTICAL in C:\498===523===525)===(498=523=525\xampp\htdocs\test\498===523===525)===(498=523=525.php on line 498
0974nobodyさん2012/03/21(水) 16:56:21.09ID:I9Kl/ls/
ある配列一覧から、キー名ではなく、データ名でデータを取り除く関数を作りたいと思ってます。

//リスト
$list = array(
1 => 大阪
2 => 京都
3 => 栃木
)

//リストから削除したい項目
$delete = array(
栃木
)

array_delete($list , $delete)

//出力結果
array(
1 => 大阪
2 => 京都
)

キー名を元に削除するのなら
unset($list[3])
なんかでいけるとおもうのですが、
VALUE名を元に、データを取り除くにはどういう方法が考えられるでしょうか?
0975nobodyさん2012/03/21(水) 17:44:28.53ID:???
array_diffでできそうだけどな
0976nobodyさん2012/03/21(水) 18:11:31.19ID:???
>>974
foreach ($list as $key => $value)
if (in_array($value,$delete))
unset($list[$key]);
print_r ($list);
0977nobodyさん2012/03/21(水) 18:42:08.08ID:???
>>972
初心者はxampp使うな
0978nobodyさん2012/03/21(水) 18:48:29.12ID:???
>>976
>>975
0979nobodyさん2012/03/21(水) 18:49:41.16ID:???
>>977
慣れるとそれこそxampp使う気が失せるんだが。
0980nobodyさん2012/03/21(水) 19:05:19.70ID:???
>>979がマジレスにしか見えなくて困る
0981nobodyさん2012/03/21(水) 19:08:08.89ID:???
>>978
言いたいことははっきり書けよwww
0982nobodyさん2012/03/21(水) 19:24:18.00ID:???
array_diffで終わりの話なのに、なんでせっせとコード書いてるの?って書けばいいのかな…
0983nobodyさん2012/03/21(水) 19:27:30.32ID:???
何でだと思ったのさw こいつバカだーとかそんなとこか?w
0984nobodyさん2012/03/21(水) 19:38:12.02ID:???
array_diffだけ教えればいいんだから、ムダだもんね。
使うな君らしい、本人の為にはならないやさしさが素敵だよ。
0985(498===523===525)===(498=523=525)2012/03/21(水) 20:08:32.15ID:4pswCVuc
>>976
惜しい。

foreach ($list as $key => $value)
if (in_array($value,$delete,true))
unset($list[$key]);
print_r ($list);

>>975 >>978 >>982 >>984
array_diff じゃ不十分。
0986nobodyさん2012/03/21(水) 23:30:01.26ID:???
>>980
>>1
0987nobodyさん2012/03/21(水) 23:49:32.82ID:???
あーうざってー
0988nobodyさん2012/03/22(木) 01:12:46.34ID:???
次スレ

http://kohada.2ch.net/test/read.cgi/php/1332346244/
0989nobodyさん2012/03/22(木) 03:44:15.33ID:???
0990nobodyさん2012/03/22(木) 09:22:15.13ID:???
23. オブジェクト指向
→ 実装が中途半端なので使用しないこと。
本格的なオブジェクト指向言語に比較してパフォーマンスが劣ります。
24.パフォーマンスが悪いと感じられるとき
→ キャッシュを使用してください。
それでもだめならサーバーCPUのオーバークロックをお試しください。

なんでこれ入れたし
0991nobodyさん2012/03/22(木) 09:24:57.40ID:???
そういう人に次スレ立てさせちゃった俺の責任だ。申し訳ない。
0992nobodyさん2012/03/22(木) 10:48:54.82ID:???
スレ立て直してくれ
>>988は放置で
0993nobodyさん2012/03/22(木) 10:53:29.78ID:???
立てた人の弁明次第
0994nobodyさん2012/03/22(木) 10:59:59.04ID:???
簡易FAQ自体の質問例も回答例もクソだからリセットでいいぐらいだ
0995nobodyさん2012/03/22(木) 11:16:55.41ID:???
>>990はサーバーのオーバークロック以外は
特に記述に誤りはないけどな。
0996nobodyさん2012/03/22(木) 11:28:01.64ID:???
オブジェクト*指向* を使用するなって日本語がそもそもヘンテコすぎ
0997nobodyさん2012/03/22(木) 11:28:07.54ID:???
マルチパラダイムを採用してる言語でOOPするなって主観すぎだろ
そんなのFAQに入れんな馬鹿野郎
0998nobodyさん2012/03/22(木) 11:57:44.62ID:???
誤りではないからいいのでは?
0999nobodyさん2012/03/22(木) 11:59:06.66ID:???
恥ずかしいからやめて
1000nobodyさん2012/03/22(木) 12:00:09.27ID:???
遅いからは誤りではないが、
遅いから使うなは、俺は誤りだと思うがどうか。
さて、弁明も駄目だったね。
10011001Over 1000Thread
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。