くだすれPHP(超初心者用)6

このエントリーをはてなブックマークに追加
488nobodyさん
phpのstring型って最大1024byteまでの文字列しか格納できないっぽいんですが、
最大許容量の変更ってできるのでしょうか?

今現在、1024byte以上入るであろうDBからの値をどのように取り出そうか思案中です。
489nobodyさん:2009/07/01(水) 21:29:11 ID:???
それはllSayの制限で、phpの制限ではありません。
490nobodyさん:2009/07/01(水) 21:52:39 ID:???
>>489
llSayが良くわからないですけど、要するに1024byte制約はしょうがないということになるのでしょうか?
491nobodyさん:2009/07/01(水) 22:18:49 ID:vUu+Pn00
なんでそうなるんだw
492nobodyさん:2009/07/01(水) 22:22:45 ID:???
>>488
>phpのstring型って最大1024byteまでの文字列しか格納できない
ソースぷりーず。
493nobodyさん:2009/07/01(水) 23:06:52 ID:???
>488
ガタガタ抜かす前に試せばいいじゃん。
何十万文字程度なら余裕で入るぜ。
494488:2009/07/02(木) 08:53:38 ID:???
>>491
>>492
>>493
確かに、サンプルソースとまでいかないまでも、ソースイメージを示せなかったのは申し訳ないです。
下記のソースイメージでも半角英数字1000文字程度で文字列をくっつけられなくなります。

$sql = ' select * from hogehoge '
$sql .= ' where foo.bar = 1 '
for () {
// ここで$sqlに文字列appendしまくり
}
・・・
というだけの単純にsql文をくっつけまくりソースです。

このことから、string型は1000文字=1024byte制限があるのではないかと勝手に推測してました。

でも、何十万文字も入るのであれば、別の原因が考えられますね。
ちょっとappendしない場合はどうなるか適当に試してみます。
495488:2009/07/02(木) 08:54:59 ID:???

イメージはわかると思うのでどうでも良いとは思いますが、
$sql = ' select * from hogehoge '
$sql = ' where hohoge.bar = 1 '
の間違いでした。
496nobodyさん:2009/07/02(木) 09:02:17 ID:???
わけわからん             アーメン
497nobodyさん:2009/07/02(木) 09:04:31 ID:???
>文字列をくっつけられなくなります
どんな症状を見てこう判断したか、それがためのソースだろうになぁ・・・
498nobodyさん:2009/07/02(木) 09:21:03 ID:???
以下エスパー的回答

できあがった$sqlの内容がおかしいに10000ペソ。
データベースに投げる前にechoで確認すべし。半角スペースがないとかクォーテーションをエスケープしてないとか。
499488:2009/07/02(木) 09:21:26 ID:???
みなさん、申し訳ございません。

すごい単純ミスでした。

環境だけの問題でした。

原因は eclipse + xdebug環境において、eclipse上で参照できる変数の最大文字数が1024byte制限があるだけのようです。
sql文(1024byte以上の)を生成した場合、eclipseの変数の値参照では途中で文字が切れているのですが、正しく実行できました。

デバッガが整った環境に慣れすぎてしまった私が問題でした。
デバッガはあくまでもデバッガだと改めて考え直さないと駄目ですね。