[前][次][番号順一覧][スレッド一覧]

mysql:2838

From: 松並 <松並 <matunami@xxxxxxxxxx>>
Date: Thu, 07 Dec 2000 19:44:51 +0900
Subject: [mysql 02838] Re: C言語でのクエリー発行

松並@横浜です。

先ほどはエラそうなことを書いてしまいすみません。

On Thu, 07 Dec 2000 16:39:55 +0900
Yoshiyuki Asano <asano@xxxxxxxxxx> wrote:
(snipped)
> 私自身、C言語を使いはじめて、7年になります。
> プレイステーションのゲームプログラムを経て今は、インターネットでの
> CGI制作をC言語で行っています。
> C言語には慣れているつもりですが、文字列の扱いなど、おかしなところが
> あればご指摘ください。

恐れ入ります。MLの質問の仕方で、技量を提示するのも効果がありますね:−)
私はC言語10年位(密度薄いかも)です。


ソースを拝見させていただきましたが、私には原因がわかりませんでした。
しかしこのソースからtemp変数に対する文字列操作の不備問題はないということが
明らかになりますね。
私も識者の方々のサポートが入るのを楽しみにしてます。

> 	strcpy(temp,"INSERT INTO age VALUES(25)\0");
> 	for(i=0;i<100;i++){
> 		error = mysql_query(d_mysql,temp);
> 		if(error != 0) printf("[%04d:%s]失敗\n",i,mysql_error(d_mysql));
> 		else printf("[%04d]成功\n",i);
> 	}

ちょいと気になるところといえば、
On Wed, 06 Dec 2000 18:49:44 +0900
Yoshiyuki Asano <asano@xxxxxxxxxx> wrote:

> そうです。-1になるのは、プライマリーキーを設定しているところにINSERTしたためです。
> デバッグのタメ同じデータでしているもので...

これはテーブルの設計時にあるカラムをプライマリキーとしていて、
複数回INSERTするときにそのカラムの値を(プライマリキーであるにも関わらず)
同じ値でINSERTしているということですよね。

私のLinux環境でmysqlコマンドを使用して実験してみました。

mysql> create table test (a integer primary key not null);
Query OK, 0 rows affected (0.00 sec)
mysql> insert into test values(3);
Query OK, 1 row affected (0.00 sec)
mysql> insert into test values(3);
ERROR 1062: Duplicate entry '3' for key 1
mysql>

このエラーは浅野さんの書かれた

On Thu, 07 Dec 2000 14:05:54 +0900
Yoshiyuki Asano <asano@xxxxxxxxxx> wrote:
> 結果は Duplicate entry '0' for key 1 とありました。

と同じメッセージですね。

本来の動作としてはこのプライマリキー重複によって
(1)「mysql_query()はエラー-1を返す」
という動作が期待され、
(2)「何回mysql_query()でエラー-1になってもメモリ破壊は起こさない」
という頑丈さも当然期待されます。
(2)を疑うなら、mysq_query()の実装を調べてみる必要があるかもしれません。

私のLinux環境でinsertを50回やってみましたが、変化なしです。
回数が少ないかもしれませんが。

あれ?PHP自体もC言語で書かれた部分からMySQLをコールしてるのですよね?
またmysqlコマンドもC言語で書かれているでしょうから同様ですね。
そう考えると、(2)の実装ミスってのもなさそうな感じがします。

※もう一つ。プライマリキーが重複しないようにしてfor()を回すと、
 結果は同じでSegmentation faultになりますでしょうか?

私にはわかりません。またゴミ投稿になりました。

-- 
松並@横浜 <matunami@xxxxxxxxxx>
http://putyou.matwerks.com/


[前][次][番号順一覧][スレッド一覧]

      2788 2000-12-06 14:56 ["Y. Tsutsui" <tutui@] 関東支部会合について                    
      2789 2000-12-06 15:17 ┣[Tatsuo Hiramatsu <ta]                                       
      2790 2000-12-06 15:37 ┃┗["Y. Tsutsui" <tutui@]                                     
      2791 2000-12-06 15:43 ┃ ┗[Michiaki Mitachi <mi]                                   
      2793 2000-12-06 16:35 ┃  ┗[<endo_t@xxxxxxxxxx> ]                                 
      2795 2000-12-06 17:29 ┗[Tatsuo Hiramatsu <ta]                                       
      2796 2000-12-06 17:35  ┣["Y. Tsutsui" <tutui@]                                     
      2798 2000-12-06 17:46  ┃┣[<ikezawa@xxxxxxxxxx>]                                   
      2807 2000-12-06 18:47  ┃┗[Tatsuo Hiramatsu <ta]                                   
      2814 2000-12-06 20:58  ┃ ┗[<ikezawa@xxxxxxxxxx>]                                 
      2815 2000-12-06 21:06  ┃  ┗["Y. Tsutsui" <tutui@]                               
      2880 2000-12-18 17:56  ┃   ┗["Y. Tsutsui" <tutui@]                             
      2881 2000-12-19 10:32  ┃    ┣[Tatsuo Hiramatsu <ta]                           
      2884 2000-12-20 18:19  ┃    ┃┗["Y. Tsutsui" <tutui@]                         
      2885 2000-12-20 21:27  ┃    ┃ ┗[<ikezawa@xxxxxxxxxx>]                       
      2890 2000-12-22 02:41  ┃    ┗["Y. Tsutsui" <tutui@]                           
      2892 2000-12-22 11:50  ┃     ┗[Tatsuo Hiramatsu <ta]                         
      2893 2000-12-22 13:49  ┃      ┗[<ikezawa@xxxxxxxxxx>]                       
      2797 2000-12-06 17:33  ┗[Yoshiyuki Asano <asa] C言語でのクエリー発行              
      2799 2000-12-06 18:12   ┣[Kayama Yoichi <yoich]                                   
      2801 2000-12-06 18:13   ┃┗[Yoshiyuki Asano <asa]                                 
      2803 2000-12-06 18:40   ┃ ┣[Kayama Yoichi <yoich]                               
      2804 2000-12-06 18:33   ┃ ┃┗[Yoshiyuki Asano <asa]                             
      2806 2000-12-06 18:40   ┃ ┗[Kengo Jinno <kengo@x]                               
      2809 2000-12-06 18:51   ┃  ┣[Yoshiyuki Asano <asa]                             
      2810 2000-12-06 18:55   ┃  ┗[荒井 哲三  <tetsumi]                             
      2812 2000-12-06 19:35   ┃   ┗[Kengo Jinno <kengo@x]                           
      2813 2000-12-06 20:04   ┃    ┣[UNO Shintaro <uno@xx]                         
      2830 2000-12-07 15:57   ┃    ┗[荒井 哲三  <tetsumi]                         
      2800 2000-12-06 18:02   ┣[Kengo Jinno <kengo@x]                                   
      2802 2000-12-06 18:20   ┃┣[Yoshiyuki Asano <asa]                                 
      2805 2000-12-06 18:40   ┃┃┗[Kengo Jinno <kengo@x]                               
      2808 2000-12-06 18:49   ┃┃ ┗[Yoshiyuki Asano <asa]                             
      2811 2000-12-06 19:35   ┃┃  ┗[Kengo Jinno <kengo@x]                           
      2843 2000-12-08 11:54   ┃┗[Yoshiyuki Asano <asa] MySQL のC言語用のライブラリって...
      2844 2000-12-08 13:19   ┃ ┗[Kengo Jinno <kengo@x]                               
      2845 2000-12-08 13:52   ┃  ┣[Tomohiro KATO <tomop]                             
      2846 2000-12-08 14:14   ┃  ┃┗[Kengo Jinno <kengo@x]                           
      2847 2000-12-08 15:18   ┃  ┃ ┗[Yoshiyuki Asano <asa]                         
      2852 2000-12-11 10:59   ┃  ┗[Yoshiyuki Asano <asa]                             
      2853 2000-12-11 11:28   ┃   ┗[Kengo Jinno <kengo@x]                           
      2854 2000-12-11 11:54   ┃    ┗[Yoshiyuki Asano <asa]                         
      2856 2000-12-11 12:41   ┃     ┗[Kengo Jinno <kengo@x]                       
      2857 2000-12-11 17:36   ┃      ┗[Yoshiyuki Asano <asa] MySQL サーバーに接続の仕方
      2858 2000-12-11 19:20   ┃       ┗[Tomohiro KATO <tomop]                   
      2873 2000-12-15 11:03   ┃        ┗[Yoshiyuki Asano <asa] MySQL  サーバーにリモート接続
      2874 2000-12-15 14:26   ┃         ┗[Tomohiro KATO <tomop]               
      2886 2000-12-21 11:32   ┃          ┗[Yoshiyuki Asano <asa]             
      2887 2000-12-21 12:27   ┃           ┗[Kengo Jinno <kengo@x]           
      2888 2000-12-21 12:45   ┃            ┗[Yoshiyuki Asano <asa]         
      2889 2000-12-21 13:01   ┃             ┗[Kengo Jinno <kengo@x]       
      2891 2000-12-22 09:18   ┃              ┗[Yoshiyuki Asano <asa]     
      2817 2000-12-06 23:50   ┗[とみたまさひろ <tomm]                                   
      2820 2000-12-07 11:15    ┗[Yoshiyuki Asano <asa]                                 
      2823 2000-12-07 13:21     ┗[Kengo Jinno <kengo@x]                               
      2824 2000-12-07 14:05      ┗[Yoshiyuki Asano <asa]                             
      2826 2000-12-07 14:38       ┣[Kengo Jinno <kengo@x]                           
      2827 2000-12-07 15:31       ┣[Kayama Yoichi <yoich]                           
      2828 2000-12-07 15:34       ┣[Tomohiro KATO <tomop]                           
      2829 2000-12-07 15:36       ┣[松並 <matunami@xxxxx]                           
      2831 2000-12-07 15:58       ┃┣[松並 <matunami@xxxxx]                         
      2833 2000-12-07 16:11       ┃┣[UNO Shintaro <uno@xx]                         
      2834 2000-12-07 16:39       ┃┗[Yoshiyuki Asano <asa]                         
      2836 2000-12-07 17:46       ┃ ┣[Tomohiro KATO <tomop]                       
      2837 2000-12-07 18:54       ┃ ┃┣[Yoshiyuki Asano <asa]                     
      2839 2000-12-07 21:21       ┃ ┃┗[Satoshi Tatsuoka <sa]                     
      2842 2000-12-08 09:25       ┃ ┃ ┗[Yoshiyuki Asano <asa]                   
->    2838 2000-12-07 19:44       ┃ ┣[松並 <matunami@xxxxx]                       
      2841 2000-12-08 09:00       ┃ ┗[UNO Shintaro <uno@xx]                       
      2832 2000-12-07 16:05       ┗[<endo_t@xxxxxxxxxx> ]