【PHP】下らねぇ質問はID出して書き込みやがれ 116
レス数が1000を超えています。これ以上書き込みはできません。
0001nobodyさん
2012/02/26(日) 11:49:58.54ID:???過去スレ、関連スレ、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:???smartyスレ立てればよろし
0952nobodyさん
2012/03/20(火) 20:19:21.63ID:kQLmWU30MySQLの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:RhIqQwV3http://smallworld.west-tokyo.com/blog/2011/02/php-study-6.html
このソースではどうやってPOSTされた物をセッション変数に入れているのですか?
0954nobodyさん
2012/03/20(火) 22:59:01.27ID:XuJ1KzYbregistCheck.php
でうけとったのをregistForm.phpに渡している。
>>952
レンサバの環境がわからんとなんともいえん
0955953
2012/03/20(火) 23:05:30.24ID:RhIqQwV3それはregistForm.phpの2行目から3行目あたりで行われているということですよね?
$_SESSION['username']=$_POST['username']みたいなのが見当たらないのですが、なぜ渡せるのですか?
0956nobodyさん
2012/03/20(火) 23:30:39.79ID:???5.3からmysql関連のドライバの扱いが変わってるんでその辺かなぁ。
いろいろ変わってるんだけどそーいうのが簡単に調べられねーんだよな。
>>955
get_magic_quotes_gpcだの、いつの時代のだよと思ったら去年の記事・・・
いろいろ変だし、そこ見るのはやめるのを俺はお勧めする。
0957953
2012/03/20(火) 23:37:12.10ID:RhIqQwV3わかりました。他の所を参考してみます。
ありがとうございました・
0958952
2012/03/21(水) 00:43:26.28ID:pFyJJ5uVレスありがとうございます。
やはりバージョンの違いが原因と考えた方がよさそうですね。
直感的には、MySQLのカラムがintなら、PHPで取得したデータも
intというのが、わかりやすいです。
また、これからは、5.3以上のサーバーが増えそうなので、
5.3でも動くように変更してみます。
0959nobodyさん
2012/03/21(水) 04:15:32.77ID:???レンサバの5.3だと仕様通りstringが返るから、OSの問題なんかね
0960nobodyさん
2012/03/21(水) 07:58:14.83ID:NtYwhUXpResource id #1
と表示されるんですが、これはどういう意味ですか?
0961nobodyさん
2012/03/21(水) 09:08:59.69ID:???意味を聞かれても答えられるようなものではない
リソースの概念については
ttp://php.net/manual/ja/language.types.resource.php
0962nobodyさん
2012/03/21(水) 09:13:44.19ID:???fopenの返り値あたりを表示してんじゃねーの?
http://jp.php.net/manual/ja/language.types.resource.php
0963952
2012/03/21(水) 10:43:08.42ID:Jp6FiHgKcoreseverで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:4pswCVucDBに何を使ってアクセスしているか書きましょうよ。
値取るまでのコードを全部書いたらいい。
0965nobodyさん
2012/03/21(水) 11:19:43.80ID:???それ以外で取得できるのはクライアント側の
中間のライブラリとかで処理してる。
0966952
2012/03/21(水) 11:52:52.10ID:Jp6FiHgKPDOを使ってアクセスしています。コードは、こんな感じです。
/**** 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自動変換に任せず、第三引数($type)を指定して型変換すべき。
http://jp2.php.net/manual/ja/pdostatement.bindcolumn.php
0968nobodyさん
2012/03/21(水) 12:52:19.15ID:???0970952
2012/03/21(水) 14:10:30.65ID:g60QnSuj便利そうなメソッドありがとうございます。
データ取得時にも型を指定できるのですね。勉強になります。
ただ、これだと、(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スレッドが終わるまで。
>>969
てきとーですいません。違うんですか。
0972nobodyさん
2012/03/21(水) 15:16:43.78ID:UYYnFQWAif文を実行すると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:???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:???0976nobodyさん
2012/03/21(水) 18:11:31.19ID:???foreach ($list as $key => $value)
if (in_array($value,$delete))
unset($list[$key]);
print_r ($list);
0982nobodyさん
2012/03/21(水) 19:24:18.00ID:???0983nobodyさん
2012/03/21(水) 19:27:30.32ID:???0984nobodyさん
2012/03/21(水) 19:38:12.02ID:???使うな君らしい、本人の為にはならないやさしさが素敵だよ。
0985(498===523===525)===(498=523=525)
2012/03/21(水) 20:08:32.15ID:4pswCVuc惜しい。
foreach ($list as $key => $value)
if (in_array($value,$delete,true))
unset($list[$key]);
print_r ($list);
>>975 >>978 >>982 >>984
array_diff じゃ不十分。
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:???→ 実装が中途半端なので使用しないこと。
本格的なオブジェクト指向言語に比較してパフォーマンスが劣ります。
24.パフォーマンスが悪いと感じられるとき
→ キャッシュを使用してください。
それでもだめならサーバーCPUのオーバークロックをお試しください。
なんでこれ入れたし
0991nobodyさん
2012/03/22(木) 09:24:57.40ID:???0993nobodyさん
2012/03/22(木) 10:53:29.78ID:???0994nobodyさん
2012/03/22(木) 10:59:59.04ID:???0996nobodyさん
2012/03/22(木) 11:28:01.64ID:???0997nobodyさん
2012/03/22(木) 11:28:07.54ID:???そんなの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:???遅いから使うなは、俺は誤りだと思うがどうか。
さて、弁明も駄目だったね。
10011001
Over 1000Threadもう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。