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

kona uto-s @ ymail.plala.or.jp
2009年 10月 25日 (日) 00:04:17 JST


こんにちは。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 @ bbb.ccc.co.jp';
$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 メーリングリストの案内