私はかなり長い間Cを作成しておらず、MySQL C APIを使用してアプリを作成しており、redhatでg++でコンパイルしています。
だから私はprintfsでいくつかのフィールドを出力し始めます...私が使用していたPRO*Cで(何年も前にsuseで)oracle apiを使用して、intを選択して次のように出力できます:
int some_int; printf( "%i"、some_int);
mysql intsでそれを実行しようとしましたが、8つの乱数が表示されました...これはmysql apiの問題であり、サーバーの構成の問題であると考え、修正しようとして数時間を無駄にしましたが、修正できませんでした。そして、私ができることがわかりました:
int some_int; printf( "%s"、some_int);
整数を正しく出力します。抽出している値の計算を行っていないため、これは問題のない解決策だと思いました。
私がいくつかのものを数えようとするまで....
私は簡単なことをしました:
int行数; for([stmt]){ 行数++; } printf( "%i"、rowcount);
再び8桁の乱数を取得しています...このマシンのintとの取引が何であるかを理解できませんでした。
次に、intをゼロに初期化すると、適切な数値が得られることに気付きました。
誰かがint変数をゼロに初期化するために必要な条件を教えてもらえますか?古いコードベースで毎回これを行ったことを思い出せません。また、mysql_stmtコードをモデル化した例では見られませんでした...
私が欠けているものはありますか?また、これが毎回必要であることを忘れてしまった可能性もあります
ありがとう...