【PHP】下らねぇ質問はID出して書き込みやがれ 99
レス数が1000を超えています。これ以上書き込みはできません。
0001nobodyさん
2010/10/13(水) 12:01:33ID:???過去スレ、関連スレ、FAQなどは>>2-10辺り
次スレは>>980が立てる。10分以内に立たない場合、宣言してから立てたい人が立てること。
◆前スレ
【PHP】下らねぇ質問はID出して書き込みやがれ 98
http://hibari.2ch.net/test/read.cgi/php/1284805237/
◆質問用テンプレ
【OS名】CentOS
【PHPのバージョン】5.3
【連携ソフトウェア】MySQL ImageMagick
【質問内容】
◆質問する時の注意
・ スレを上げて自分のIDを表示させること。(メール欄に何も記述しない。専ブラのsageチェックを外す)
・ 己の行った操作、変更などを詳しく明記すること。
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
・ 質問者として、態度をわきまえること。
・ 事前に関連リンクの公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。
(PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。)
◆質問後の注意
・2回目以降は最初に質問した際のレス番号を入れて、偽者防止に必ずIDを表示させること。
・解決しなくても回答をもらった場合はお礼を言うこと。
(荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。)
◆回答者への注意
・誰にレスしているのか分からないと困るので、>>(アンカー)をつけて回答すること。
【その他諸注意】
・SQL・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
0932nobodyさん
2010/10/26(火) 23:04:08ID:???http://php.net/manual/ja/pdo.errorinfo.php
http://php.net/manual/ja/pdostatement.errorinfo.php
0933nobodyさん
2010/10/26(火) 23:07:24ID:???こっちの方が大事だ
http://php.net/manual/ja/pdo.query.php
0936nobodyさん
2010/10/26(火) 23:56:02ID:Y5jQHIQ+マジすみません><そのとおりでした
0937nobodyさん
2010/10/26(火) 23:58:29ID:DOrgamz8単純に何が原因なのでしょうか?構文自体に問題はないように見えますが
0938nobodyさん
2010/10/27(水) 01:28:02ID:???そこの部分をだしなさいよ
SETって書いてるとこあるんだろ?
0940nobodyさん
2010/10/27(水) 01:53:54ID:???0941nobodyさん
2010/10/27(水) 02:06:36ID:2BwSQxVQArray ( [0] => HY000 [1] => 1 [2] => SQL logic error or missing database )
が出てきました。
0942nobodyさん
2010/10/27(水) 02:11:36ID:???new PDOの部分ね
0943nobodyさん
2010/10/27(水) 02:13:00ID:???0945nobodyさん
2010/10/27(水) 02:19:04ID:???0946nobodyさん
2010/10/27(水) 02:20:12ID:???0947nobodyさん
2010/10/27(水) 02:23:08ID:???ただしテーブル単位であることに注意
0948nobodyさん
2010/10/27(水) 02:25:30ID:2BwSQxVQset namesは使えなかったんですね...
>>941のエラーの対処はどうしたら良いのでしょうか?
調べたらディレクトリの権限に関する情報が出てきたんですが、
パーミッションはディレクトリ777と各ファイル666以上にしてあるのですが
0950nobodyさん
2010/10/27(水) 08:05:53ID:???0951nobodyさん
2010/10/27(水) 08:35:39ID:???0952nobodyさん
2010/10/27(水) 09:02:57ID:???0953nobodyさん
2010/10/27(水) 09:55:40ID:???PDOを呼び出してるところでエラーを返すものは全部チェック。
エラーを返すかどうかはちゃんと関数リファレンスで調べる。
エラーが出た直後でerrorInfoで詳細を表示っていうのが基本。
最初から一歩ずつ足元を固めていかないと何をやってるのか
わからなくなるよ。
0954nobodyさん
2010/10/27(水) 10:47:37ID:???0955nobodyさん
2010/10/27(水) 11:11:21ID:???substr_replaceとstrposの組み合わせ以外で何かスマートな方法はありますか?
0956nobodyさん
2010/10/27(水) 11:17:13ID:???0957nobodyさん
2010/10/27(水) 11:26:42ID:???正規表現なので処理がもったいないのとエスケープ
が必要かもしれないというのが弱点だけどな。
0959nobodyさん
2010/10/27(水) 12:21:33ID:PYQNlHNo「<br />」タグを挿入したいと思います。
wordwrap関数では半角英数字の場合は↓でうまくいくのですが、
wordwrap($text,20,"<br />",true);
日本語と英数字が混在すると文字化けを起こしてしまいます。
例えば↓のような日本語英数字が混在する場合、
僕の家は埼玉県hogehoge市2-1-2です。(うそ)よろしく
関数か何かで↓のように変換するにはどうしたらよいでしょうか?
僕の家は埼玉県hogeho<br />ge市2-1-2です。(うそ<br />)よろしく
0960nobodyさん
2010/10/27(水) 12:44:45ID:???解決とは違うがなんでそんなことがしたいの?HTMLの書き方的に凄く気持ち悪い
10文字ごとの幅で折り返したいだけならそれの親要素の幅を指定してやる方がスマートだし正しい
すとりくたん的に受け付けないわ
0961nobodyさん
2010/10/27(水) 12:51:55ID:???0962nobodyさん
2010/10/27(水) 12:59:02ID:???本当にその例「僕の家は埼玉県hogehoge市2-1-2です。(うそ)よろしく」で文字化けするのなら
文字コードの指定の問題。スクリプトの文字コードやmb_*の値を確認して。
次に、「1234567890123456789あい」という文字列の場合
20で区切ると「あ」が分割されるから文字化けするのは仕方がない。
ということで、mb_strlenとmb_substrなどを組み合わせるのが良いと思うが
全角半角区別なく「10文字」ならmb_strlenで簡単だけど
「全角10文字」と「20バイト」は意味が違うから面倒かもね
0963nobodyさん
2010/10/27(水) 13:01:28ID:???半角が改行されないのは禁則処理である意味当たり前だからな
そういう理由なら半角数字を全角にするとかの方がまともな対策だと思うが
0964nobodyさん
2010/10/27(水) 13:39:47ID:???SJIS限定
$len = 20;
$str = "僕の家は埼玉県hogehoge市2-1-2です。(うそ)よろしく";
mb_internal_encoding("sjis");
$result = array();
for ($i = 0; $i <strlen($str); $i += $len) {
$result[] = mb_strcut($str, $i, $len);
}
echo implode("<br />", $result)."\n";
僕の家は埼玉県hogeho<br />ge市2-1-2です。(うそ<br />)よろしく
0965nobodyさん
2010/10/27(水) 16:02:45ID:???0966nobodyさん
2010/10/27(水) 16:07:06ID:HdTEvBrp↓のようなコードを書いたのですが、何も出力されません。
newする以外に取得する方法はないのでしょうか?
class Test{
var $text = 1;
function getInstance(){
return $this;
}
}
$obj = Test::getInstance();
echo $obj->text;
0967nobodyさん
2010/10/27(水) 16:21:36ID:dVXlaE2k条件はフリーであること
0968nobodyさん
2010/10/27(水) 16:23:11ID:???http://www.google.co.jp/search?hl=ja&source=hp&biw=1024&bih=655&q=php+cms&aq=f&aqi=g10&aql=&oq=&gs_rfai=
0971nobodyさん
2010/10/27(水) 16:30:20ID:???<?php
class SimpleClass
{
public static $var = 'a default value';
public static function displayVar() {
return self::$var;
}
}
echo SimpleClass::displayVar();
0972nobodyさん
2010/10/27(水) 16:31:02ID:???スタティックなクラスはインスタンスを作らなくていいのがメリットじゃないの?
class Test{
static private $text = 1;
static public function getText() {
return self::$text;
}
}
echo Test::getText();
メンバ変数$textをpublicにすれば
echo Test::$text; も可能。
0975nobodyさん
2010/10/27(水) 16:40:23ID:???最低限この3ページくらいは完璧にしてきて
http://www.php.net/manual/ja/language.oop5.basic.php
http://www.php.net/manual/ja/language.oop5.paamayim-nekudotayim.php
http://www.php.net/manual/ja/language.oop5.static.php
0977966
2010/10/27(水) 16:54:30ID:HdTEvBrp0978nobodyさん
2010/10/27(水) 17:26:07ID:2BwSQxVQレスありがとうございます。コマンドでやるときは問題ないんですが...
一覧を表示することはできるのですが、insertがうまくいかないんですよね。
↓全文です。sqliteは3.3.6です
try {
$dbh = new PDO('sqlite:test.db');
$res = $dbh->query( 'SELECT * FROM tab1');
$sql = 'insert into tab1 (number, name, note) values (?, ?, ?)';
$stmt = $dbh->prepare($sql);
$flag = $stmt->execute(array('104', '成田','日本'));
print_r($flag);
if ($flag){
print('データの追加に成功しました<br>');
}else{
print('データの追加に失敗しました');
}
}
catch( PDOException $e ) {
echo 'Connection failed: ' . $e->getMessage();
}
?>
0979nobodyさん
2010/10/27(水) 17:31:22ID:???0980nobodyさん
2010/10/27(水) 17:38:49ID:2BwSQxVQレスありがとうございます。駄目でした。
0981nobodyさん
2010/10/27(水) 18:19:27ID:???0982nobodyさん
2010/10/27(水) 18:25:25ID:???0984nobodyさん
2010/10/27(水) 18:29:43ID:???0985nobodyさん
2010/10/27(水) 18:35:04ID:2BwSQxVQ>>981さん。駄目でした...
>>982さん。前に指摘してもらったスペルミスを修正しましたwお恥ずかしい限りです。
>>983さん。エラーは>>941にある通りです。スレッドは立てさせていただきました。
>>984さん。お借りしているサーバーでやってるのですが、今は動いてます。
0986nobodyさん
2010/10/27(水) 18:36:38ID:???http://hibari.2ch.net/test/read.cgi/php/1288168893/
ついに100か・・・
0987nobodyさん
2010/10/27(水) 18:40:22ID:2BwSQxVQ忘れてましたw誘導ありです。
0988nobodyさん
2010/10/27(水) 18:54:38ID:???0990nobodyさん
2010/10/27(水) 18:59:47ID:???デフォじゃコンストラクタ以外で例外吐いてくれないぞ
$dbh = new PDO('sqlite:test.db');
$dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
0991nobodyさん
2010/10/27(水) 19:22:41ID:2BwSQxVQConnection failed: SQLSTATE[HY000]: General error: 1 SQL logic error or missing database
と出ました。
これはフォルダに書き込み権限与えてない為表示されるエラーなんでしょうか?
ちなみにフォルダの属性は777です
0992nobodyさん
2010/10/27(水) 19:26:29ID:???0994nobodyさん
2010/10/27(水) 19:54:59ID:2BwSQxVQtest/sqltest.php
↑ここです
0995nobodyさん
2010/10/27(水) 20:01:05ID:???0996nobodyさん
2010/10/27(水) 20:13:20ID:???sqltest.phpってのはこのスレで今初めて出てきたわけだけど、test.dbもsqltest.phpと同じ場所にあるんだよね?
>$res = $dbh->query( 'SELECT * FROM tab1');
↑のなしで実行してみてよ
PDOは全部fetchしないうちに次のクエリ発行したらダメだったと思う。
ttp://php.net/manual/ja/pdo.query.php
>PDO::query() を次にコールする前に 結果セット内の全てのデータを取得しない場合、そのコールは失敗します。
>PDOStatement::closeCursor() をコールし、 次に PDO::query() をコールする前にPDOStatement オブジェクトに関連付けられたリソースを解放してください。
0997nobodyさん
2010/10/27(水) 20:24:08ID:2BwSQxVQ>sqltest.phpってのはこのスレで今初めて出てきたわけだけど、test.dbもsqltest.phpと同じ場所にあるんだよね?
そうです。
>>$res = $dbh->query( 'SELECT * FROM tab1');
>↑のなしで実行してみてよ
>PDOは全部fetchしないうちに次のクエリ発行したらダメだったと思う。
外したら出来ました。fetchしてから使わないと駄目だったんですね...
後は自力でなんとかできそうです。
長々とすいませんでした。レスしてくれた方ありがとうです。
1000nobodyさん
2010/10/27(水) 22:46:48ID:???10011001
Over 1000Threadもう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。