[PHP-users 4413] Re: 文字列のサイズを変更するには?

WADA Hiroyuki php-users@php.gr.jp
Sat, 22 Dec 2001 00:21:41 +0900


Hisashi Sasaki wrote:

> SQL文をユーザが指定したテーブル名からプログラム的に作成して
> 問い合わせを行うようにしました。指定するテーブル名が多くなった
> 場合に 文字列があふれて、 正しいSQL文にならず 問い合わせに
> 失敗してしまいました。

本当にあふれたのでしょうか。堀田さんもおっしゃいましたが

> Warning: PostgreSQL query failed: ERROR: Column 'day' is ambiguous in

これは最後の

> SELECT day FROM ZC86A_umeda,ZC86_UMTSQMOD_a2k,ZC86_a2k ORDER BY day"

でテーブルが複数になってるからですよね。大体、全部 SELECT day FROM
になってるようですが、どこをどうやったら

>         $sql_body = "SELECT path_name AS パス, cell_name AS ブロック名, day AS $day_alias, daytime AS 日時, comment AS コメント
> FROM $names[$i]";

このスクリプトからそういう文字列ができるのか、謎です。

そもそも、そんなにたくさんUNIONしなくちゃいけないのが異常だと
思うのですが(^^;

> [質問]
> 今まで、文字列を使うときに、PHPでは特にサイズ的な宣言をしないでも
> 使えてしまうので、気にしてませんでした。上記のようなエラーがでましたので、
> defaultのサイズを超えた場合どのようにすればよいか 分かりません。

マニュアルには
Note: It is no problem for a string to become very large. There is no
practical bound to the size of strings imposed by PHP, so there is no
reason at all to worry about long strings.
と書いてありますから、いわゆる「4GB」くらいはいけるんじゃないですか。

和田