sql >> データベース >  >> RDS >> Mysql

PHP:ビューをカウントし、カウントを1つのIPアドレスに制限するためにテーブル行の値をインクリメントする方法

    DUPLICATE KEY UPDATE
    

    INSERTとともに使用されます UPDATEではありません ステートメント DOCS

    1つのIPのカウントは次のようになります

    SELECT COUNT(*) FROM profiles WHERE IP = "127.1.0.0";
    

    [私が上に書いたものを探していない場合]

    IPアドレスが主キーの場合、

    INSERT INTO 
    profiles (ip,views) 
    VALUES ("127.1.0.0",1)
    ON DUPLICATE KEY 
    UPDATE views=views+1;
    

    コードを正しく機能させたい場合[mysql_*も使用しないでくださいユーザー入力をエスケープしてください]

    <?php
    require_once 'db_conx.php';
    $result = mysql_query( "SELECT * FROM profiles WHERE pid =2")  or die (mysql_error());
      /*ON DUPLICATE KEY UPDATE mviews = mviews+ 1 */               
    if(mysql_num_rows($result) == 0){
         mysql_query( "INSERT INTO profiles (views) value(1) ")  or die (mysql_error());
        }else {
                 mysql_query( "UPDATE profiles SET mviews = mviews +1 WHERE pid = '2' ")  or die (mysql_error());
          }
    mysql_close($con);
    ?> 
    


    1. SQLインジェクションで知っておくべき記号

    2. SQL Serverクエリキャッシュをクリアするにはどうすればよいですか?

    3. 新しいデータベース設定で構成ファイルを更新します

    4. SQLでテーブルの最後のレコードを選択するにはどうすればよいですか?