-3

今まで解決できなかった問題が見えてきました...

クエリ PL/SQL からの情報を含む php ページを開発することを目指しています。私はなんとか接続を確立して読み取りを行いました...しかし、PHPの結果から得られた結果をOracle Developer(私のコンピューターにインストールされている)と比較すると、同じではないことがわかります... PHPの結果が来るそれに適用されるフィルターとして..ほんの少ししか表示されません。

どのような理由が考えられますか? 誰かが私を助けることができますか?

コードは次のとおりです。

$conexao = oci_connect($user,$pass,$db);

if (!$conexao) {
    echo "falha na conexão";
}
else{
    $query = "Select assignment,problem_status
            From MV_ZON_SERVICE_REQUEST
            where assignment in   ('Desenvolvimento Aplicacional SI -  Digitalização & Arquivo',    'Desenvolvimento Aplicacional SI - NB FILENET RESP',    'Desenvolvimento Aplicacional SI - NB SAP RESP',    'Desenvolvimento Aplicacional SI - Portais de Admin Corporativa',   'Desenvolvimento Aplicacional SI - SAP',    'Suporte Aplicacional SI 2ª linha - Digitalização & Arquivo',   'Suporte Aplicacional SI 2ª linha - Portais de Admin Corporativa',   'Suporte Aplicacional SI 2ª linha - SAP',  'Suporte Aplicacional SI 2ª linha - ZON Periódicos',  'Suporte Técnico SI - Digitalização & Arquivo',  'Suporte Técnico SI - Portais de Admin Corporativa',   'Suporte Técnico SI - SAP')
            and problem_status not in ('Closed','Resolved')";

    $stmt = oci_parse($conexao,$query);
    oci_execute($stmt);

    $nrows = oci_fetch_all($stmt,$results);

    if ( $nrows > 0 ) {
       print "<TABLE ID=\"tablistagem\" BORDER=\"1\">\n";
       print "<TR>\n";
       while ( list( $key, $val ) = each( $results ) ) {
          print "<TH>$key</TH>\n";
       }
       print "</TR>\n";

       for ( $i = 0; $i < $nrows; $i++ ) {
          reset($results);
          print "<TR>\n";
          while ( $column = each($results) ) {
             $data = $column['value'];
                print "<TD>$data[$i]</TD>\n";
          }
          print "</TR>\n";
       }
       print "</TABLE>\n";
    } else {
       echo "No data found<BR>\n";
    }
    echo "";
    OCILogoff($conexao);
}

私はphpでクエリをテストし、Oracle開発者はまったく同じでした...私が言ったように、異なる結果を返します:x

クエリ:

Select assignment,problem_status
From MV_ZON_SERVICE_REQUEST
where assignment in   ('Desenvolvimento Aplicacional SI -  Digitalização & Arquivo',    'Desenvolvimento Aplicacional SI - NB FILENET RESP',    'Desenvolvimento Aplicacional SI - NB SAP RESP',    'Desenvolvimento Aplicacional SI - Portais de Admin Corporativa',   'Desenvolvimento Aplicacional SI - SAP',    'Suporte Aplicacional SI 2ª linha - Digitalização & Arquivo',   'Suporte Aplicacional SI 2ª linha - Portais de Admin Corporativa',   'Suporte Aplicacional SI 2ª linha - SAP',  'Suporte Aplicacional SI 2ª linha - ZON Periódicos',  'Suporte Técnico SI - Digitalização & Arquivo',  'Suporte Técnico SI - Portais de Admin Corporativa',   'Suporte Técnico SI - SAP')
and problem_status not in ('Closed','Resolved')

オラクルの結果:

画像のリンク

PHP の結果:

何もデータが見つかりませんでした

ありがとうございました

4

1 に答える 1

1

こんにちは、

私は問題を解決することができました..誰かが将来同様の問題を抱えている可能性があるため、私の解決策をここに残します。

主要なレビューの後、php の文字エンコーディングがデータベースと等しくないことが判明しました。 、何も見つかりませんでした...

これを解決するには、Oracle 開発者で次のクエリを実行して、データベースのエンコーディングを知るだけで十分でした。

  select DECODE(parameter, 'NLS_CHARACTERSET', 'CHARACTER SET',
'NLS_LANGUAGE', 'LANGUAGE',
'NLS_TERRITORY', 'TERRITORY') name,
value from v$nls_parameters
WHERE parameter IN ( 'NLS_CHARACTERSET', 'NLS_LANGUAGE', 'NLS_TERRITORY')

PHPコードのどこに接続するかを変更するには、コーディングがあれば十分でした。

$conexao = oci_connect($user,$pass,$db,'WE8MSWIN1252');
于 2013-05-02T13:38:05.357 に答える