0

これが私のphpコードの一部です:

 foreach ($value->ahkam as $k => $v){
        echo $v->id."\n";
        //Save into db one hokm
        $addHokm = "INSERT INTO qm_hokm (hokm_id, type, tooltip, line, x1, y1, x2, y2, radius, XOrigin, YOrigin, page_id)
            VALUES ($v->id,$v->type,'tooltip',0,$v->x1,$v->y1,$v->x2,$v->y2,$v->r,$v->XOrigin,$v->YOrigin,$pageNumber)";
        if(!mysqli_query($con, $addHokm))
            echo "Failed to insert into db...".$v->id."\n";
    }

実際、クライアントからの ajax リクエストによって送信された json 構造を取得しています。多くの値があります$value->ahkamが、問題は最初のクエリのみが実行され、他のクエリがエラー メッセージを表示することです。何か助けてください

アップデート:

エコーの結果は次のとおりです。

0
1
Failed to insert into db...1
2
Failed to insert into db...2

ご覧のとおり、hokm番号 0 が追加されていますが、他の番号は追加されていません$pageNumerfoeign key

4

2 に答える 2

0

コメントに基づいて、クエリが page_id 値に重複した値を挿入しているように見えます。これは、重複する値を持つことができないフィールドとして設定されているようです。クエリによると、そのフィールドに $pageNumber を使用していますが、ループ内で変更されていません。同じ値を使用できないようにする制約を取り除くか、$pageNumber にまだ使用されていない値があることを確認する必要があります。

于 2013-08-09T17:24:26.300 に答える
0

問題は外部キーにあります。そうであってはなりませんunique。このように、1 つの に複数のエントリを追加できますpage_id。それが正しい答えであることを願っています:)

于 2013-08-09T17:24:56.590 に答える