SQLの窓 イラストAC フリー素材

2014年11月06日

フリーフォントを使って PHP 画像(GD)として埋め込むアクセスカウンターの DB 処理部分

アクセスカウンターの文字列表示部部下は、PHP 画像(GD)として埋め込むアクセスカウンターの画像出力部分の作成 を参照して下さい。

ここの get_value() 関数の戻り値を $img_text = get_value(); としてセットするだけです。
※ require_once( "example_db.php" ); も必要です

▼ example_db.php
<?php
function get_value() {

	// ***********************************************
	// グローバル変数
	// ***********************************************
	$server = 'サーバー';
	$db_name = 'データベース';
	$user = 'ユーザ';
	$password = 'パスワード';

	// ***********************************************
	// データベース接続
	// ***********************************************
	$connect = @ new mysqli($server, $user, $password, $db_name);
	if ($connect->connect_error) {
		return "----------";
	}

	$query = "update counter ";
	$query .= " set c1 = LAST_INSERT_ID( c1+1 ) ";
	$query .= " where rkey = 1";

	$result = $connect->query($query); 
	if ( !$result ) {
		return "==========";
	}

	$query = "select LAST_INSERT_ID()";

	$result = $connect->query($query); 
	if ( !$result ) {
		return "==========";
	}

	$row = $result->fetch_array(MYSQLI_BOTH);

	$ret = sprintf( "%010d", $row[0]+0 );

	return $ret;

}
?>

要点は、LAST_INSERT_ID( n ) を使用して、カウンター用のレコードの一つの列を更新して、その結果を取得して使用しているところです。

テストに使ったテーブル定義
CREATE TABLE `counter` (
  `rkey` int(11) NOT NULL,
  `c1` int(11),
  `c2` int(11),
  PRIMARY KEY (`rkey`)
)
この方法ですと、一つのテーブルの1レコードだけで複数のカウンターを管理できます。


【PHPの最新記事】
posted by at 2014-11-06 22:14 | PHP | このブログの読者になる | 更新情報をチェックする