• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:phpとSQLでアクセスカウンタとリンクを作りたい)

PHPとSQLでアクセスカウンタとリンクを作る方法

このQ&Aのポイント
  • mySQLとphpを使ってアクセスカウンタを作る方法を知りたい。
  • 自分で試したがうまくいかないため、模範回答が知りたい。
  • データベースにアクセスして特定のデータを抽出する方法がわからない。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

<?php if(!isset($_GET['id']) || !preg_match('/^[0-9]+$/', $_GET['id'])){ //GETパラメータにIDがないか、 //数字以外のものが入ってるので終了 exit(); } //DB設定 define('MY_DB_DSN', 'mysql:dbname=your_db_name;host=your-host-name'); define('MY_DB_USER', 'username'); define('MY_DB_PASS', 'password'); $id = $_GET['id']; try{ $pdo = new PDO(MY_DB_DSN, MY_DB_USER, MY_DB_PASS); //PDOでデータベースアクセス //PDOを設定 $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); //IDを探す //プリペアドステートメントの作成 $stmt = $pdo->prepare("SELECT * FROM animal WHERE id=?"); if(!$stmt->execute(array($id))){ //失敗したので終了 exit(); } $row = $stmt->fetch(PDO::FETCH_ASSOC); if(!empty($row)){ //遷移先URLを取得して $url = $row['url']; //カウンタを回す $stmt = $pdo->prepare("UPDATE animal SET score=score+1 WHERE id=?"); $stmt->execute(array($id)); //準備終わったのでリダイレクト header("Location: {$url}"); exit(); } }catch(Exception $e){ //例外エラーが出てきたので終了 //エラー内容みたかったら //echo $e; //上をコメントアウト exit(); } ?> こんな感じですかね。

spinia0120
質問者

お礼

大変ご丁寧なご回答、本当にありがとうございます。 まだ学習途中ですが、このプログラムをもとにより一層の昇進を続けたいと思います。 ありがとうございました。参考にさせていただきます。

関連するQ&A

専門家に質問してみよう