2009年10月26日

[PHP-users 34818] Re:OracleのDBに対するSELECT文の書き方について

yamamoto です。


昔よく Oracle を使用していました。


> ちなみに、OracleDBの UID フィールドは VARCHAR2 ですが
> $uidのデータ型は文字列です。

>
> メールアドレスでは検索できるのに、数字の文字列で検索できないのか
> 不思議です。

手元に確認環境がないので記憶で回答しますが、
Oracle の CHAR 型のフィールドは固定長なので、UID が CHAR(8) などだった場合、

'0123456' というデータは、'0123456 ' という形で格納されていたような気がします。
UID のデータサイズはいくつでしょうか。

> ----- Original Message ----- From: "kona" <uto-s@xxxxx>
> To: <php-users@xxxxx>
> Sent: Sunday, October 25, 2009 12:04 AM
> Subject: OracleのDBに対するSELECT文の書き方について
>
>
>> こんにちは。konaと申します。
>>
>> 最近、PHPとOracleの勉強し始めたものです。
>>
>> 下記の通り、PHPからOracleのデータベースをSELECT文で参照しようと
>> 試みておりますが、属性がVARCHAR2の数値が納められたフィールドで、
>> WHERE句の条件を数値で検索しようとすると、
>> 期待した値が取得できず困っています。
>> ($row['NAME'] や $row['MAIL']は何も表示されません)
>>
>> <?php
>> $uid = '0123456';
>> $con = OCILogon("id","password","dbserver:1521/inst");
>> $stmt = OCIParse($con, "SELECT * FROM TABLENAME WHERE UID = '$uid'");
>> OCIExecute($stmt);
>>
>> while ($row = oci_fetch_array($stmt, OCI_ASSOC)) {
>> echo $row['NAME'];
>> echo $row['MAIL'];
>> }
>> ?>
>>
>>
>> 但し、別なフィールド(属性がVARCHAR2のメールアドレスが納められた
>> フィールド)では、WHERE句をメールアドレスで検索すると、
>> 問題なく値が取得できます。
>> ($row['NAME'] には氏名、 $row['MAIL']にはメールアドレスが表示されます)
>>
>> <?php
>> $mail = 'aaaa@xxxxx';
>> $con = OCILogon("id","password","dbserver:1521/inst");
>> $stmt = OCIParse($con, "SELECT * FROM TABLENAME WHERE MAIL = '$mail'");
>> OCIExecute($stmt);
>>
>> while ($row = oci_fetch_array($stmt, OCI_ASSOC)) {
>> echo $row['NAME'];
>> echo $row['MAIL'];
>> }
>> ?>
>>
>> SELECT文のWHERE句で数値の条件を設定する際の注意点がありましたら
>> 解決方法も合わせてアドバイス頂けますと幸いです。
>>
>> よろしくお願い致します。
>
>
> _______________________________________________
> PHP-users mailing list PHP-users@xxxxx
> http://ml.php.gr.jp/mailman/listinfo/php-users
> PHP初心者のためのページ - 質問する前にはこちらをお読みください
> http://oldwww.php.gr.jp/php/novice.php3
>

--
-<Thinkmeta>------------------------------------------
<?xml version="1.0" encoding="ISO-2022-JP" ?>
<signature>
<name>山本 正浩[Masahiro Yamamoto]</name>
<mail>yamamoto@xxxxx</mail>
<web> http://www.thinkmeta.jp/<;/web>
</signature>
_______________________________________________
PHP-users mailing list PHP-users@xxxxx
http://ml.php.gr.jp/mailman/listinfo/php-users
PHP初心者のためのページ - 質問する前にはこちらをお読みください
http://oldwww.php.gr.jp/php/novice.php3


投稿者 xml-rpc : 2009年10月26日 22:26
役に立ちました?:
過去のフィードバック 平均:(0) 総合:(0) 投票回数:(0)
本記事へのTrackback: http://hoop.euqset.org/blog/mt-tb2006.cgi/89748
トラックバック
コメント
コメントする




画像の中に見える文字を入力してください。