画像ビューを追跡するための私のコード (tracks.php スクリプト) は次のとおりです。
$img_id = $_GET['img_id'];
$db->insert(TRACKS, $img_id);
header('Content-Type: image/jpeg');
//then output img's content
関数を使用しheader()
て画像の内容を出力すると、レコードが重複します。どうしてか分かりません?
私を助けてください。どうもありがとう。
画像ビューを追跡するための私のコード (tracks.php スクリプト) は次のとおりです。
$img_id = $_GET['img_id'];
$db->insert(TRACKS, $img_id);
header('Content-Type: image/jpeg');
//then output img's content
関数を使用しheader()
て画像の内容を出力すると、レコードが重複します。どうしてか分かりません?
私を助けてください。どうもありがとう。
これが発生する理由はいくつかあります。いくつかのテストを実行し、$db オブジェクトについて詳しく知らなければ、追跡するのに苦労するでしょう。
→ この問題の簡単な解決策は、$img_id を挿入する前にデータベースに存在しないことを確認することです。
Zend DBの $db オブジェクトを使用して、最初に img_id を確認すると、次のようになります。
$select = $db->select();
$select->from( 'table_name', '*' );
$select->where( 'img_id = ?', $img_id );
$rows = $db->fetchAll( $select );
if( count( $rows[0] ) == 0 ) { $db->insert( TRACKS, $img_id ); }
最初に $img_id をサニタイズして、SQLインジェクションを回避してください。
→ 次に、rowCount / mysql_num_rows()が返されたことを確認します。返された数値が 0 の場合は、$img_id を挿入します。それ以外の場合は、挿入しないでください。