• 締切済み

varcharフィールドのデータ取得

varcharフィールドをphpで取得したいのですが255byteしかmssql_queryでは取得できません。 それ以上のデータを取得する方法、もしくはそれに変わる取得方法を教えてください。 環境 SQLsever 2005 PHP ver5.0

みんなの回答

  • kalkichi
  • ベストアンサー率64% (22/34)
回答No.4

VIEWを作る段階で必要なレコードだけ抽出するのがいいと思います。 別な方法としてはODBC経由ではどうでしょうか。(環境がないので試してません)

参考URL:
http://php.mirror.camelnetwork.com/manual/ja/ref.pdo-odbc.php
swqamy
質問者

お礼

ありがとうございます。 どうにかできそうです。

  • kalkichi
  • ベストアンサー率64% (22/34)
回答No.3

APIの仕様のようですので、VARCHARからTEXTにCASTしたVIEWをはさむしかないようです。

swqamy
質問者

補足

ということはvarcharフィールドをもつテーブルに対し、INSERT・UPDATEを行う場合、    VIEWでテーブルの全件を取得、PHPでそれを表示(SELECT)    更新(追加)するときはテーブルを更新(INSERT/UPDATE) ということですか?

  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.2

失礼しました勝手にmysqlの案件だと勘違いしておりました。 SQLsever ならvarcharのサイズは大きくてもいけるのですね? 専門外なのでお役に立てません。申し訳ありません。

  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.1

>varcharフィールドをphpで取得したいのですが255byte そもそもSQLの仕様の問題では? 取得以前に保存されていないと思いますが・・・。 場合によってはtext系の型で保存する手もありますが、 検索性がおちる可能性があります。

参考URL:
http://dev.mysql.com/doc/refman/4.1/ja/char.html
swqamy
質問者

補足

データベースのフィールドをvarchar(2000)というようにしているとINSERTができてデータは保存されます。 また、SQL文のCASTでフィールドをTEXTに変えて取得するサンプルが mssql_field_lengthのマニュアルで載っていましたが試したところ 空白が帰ってきてしまっています。 ※別の変換を試すとエラーが帰ってきているので使用方法は間違っていません。

関連するQ&A