-2

私はノーを得ようとしています。Oracle DB のテーブルからのエントリの。アプリケーションは C で開発されており、mySql lib を使用してデータベースにアクセスしています。前述したように、db レイヤーで Oracle を使用し、アプリケーションで mysql 関数を使用しています。これは、libmysqlora を使用して行われます。「select count(*) from 」のようなクエリを発行すると、実際のカウントの最初の 3 桁しか取得できません。以下は、これを読むための私のコード全体です。

int64_t vmsdb_read_count(char *table, char *query)
{
uint i;
MYSQL_ROW row;
boolean free_query = FALSE;

if (query == NULL) {
    newvallocate(char, query, SHORT_QUERY_SIZE);
    snprintf(query, SHORT_QUERY_SIZE, "select count(*) from %s", table);
    free_query = TRUE;
}

if (mysql_query(mysql, query)) {
    exiterr(Q_NOTICE, query);
    goto ERROR;
}

if (!(res = mysql_store_result(mysql))) {
    exiterr(Q_NOTICE, "MySQL failed to store results. ");
    goto ERROR;
}

while((row = mysql_fetch_row(res))) {
    for (i=0 ; i < mysql_num_fields(res); i++) {
        int64_t count = atoll(row[i]);
        mysql_free_result(res);
        res =  NULL;
        if (free_query) {
            vfree(query);
            free_query = FALSE;
        }
        return (count);
    }
}
mysql_free_result(res);
res = NULL;
ERROR:
if (free_query) {
    vfree(query);
}
return 0;
}

テーブル「宛先」の場合、sqlplus で行をカウントすると:

 SQL> select count(*) from destination;

 17928

しかし、これに前述の関数を使用すると:

  printf("No. of rows in destination table = %d\n", vmsdb_read_count("destination", NULL));

  output--> No. of rows in destination table = 179

このテーブルだけでなく、データベース内の他のすべてのテーブルでも、関数はカウント値の最初の 3 桁のみを返します。これの原因は何ですか?そして、どうすればこの問題を解決できますか?


ドメイン (.htaccess) 内のサブフォルダーの表示に関する問題

この情報は別の記事で読みました。

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d

...指定された名前のファイルがブラウザに存在しない場合、またはブラウザのディレクトリが存在しない場合は、以下の書き換えルールに進むことを意味します

そこで、.htaccess コードに適用して、.php 拡張子やその他の URL 形式を削除しようとしました。以下のコード:

#REWRITE LINKS
Options All +Indexes

#REDIRECT ORIGINAL DOMAIN TO WWW
RewriteEngine On
RewriteCond %{HTTP_HOST} ^noithateti.com [NC]
RewriteRule ^(.*)$ https://www.noithateti.com/$1 [R=301,NC]

#REWRITE LINKS
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^product-details/([a-zA-z0-9_-]+)/([0-9]+)$ product-details.php?title=$1&id=$2 [L]
RewriteRule ^products/([a-zA-z0-9_-]+)/([0-9]+)$ products.php?title=$1&id=$2 [L]
RewriteRule ^result.aspx result.php [L]
RewriteRule ^([^\.]+)$ $1.php [NC]

#RETURN 404 IF THE FILE CONTAINS .php
RewriteCond %{THE_REQUEST} "^[^ ]* .*?\.php[? ].*$"
RewriteRule .* - [R=404,L]

ただし、ドメインのサブフォルダーを表示できません。例: www.example.com/subfolder を表示できません。これは、サーバーがファイルと既存のフォルダーの間で混乱したと思われるためです。
コードの行を 1 行ずつコメントしているときに、問題が次の行にあることがわかりました。

RewriteRule ^([^\.]+)$ $1.php [NC]

驚いたことに、これはすべての .php 拡張子を削除するために使用したコード行です。
私が読んだ引用とコードを組み合わせると、矛盾が生じました。次の問題を解決するには、何を変更すればよいかわかりません。誰にもアイデアはありますか?私にお知らせください。ありがとう!

4

1 に答える 1