/*
* ファイル名: mysql データベース接続クラス
*/
class mysql{
private $db_host; //データベース ホスト
private $db_user //データベース ユーザー名
private $db_pwd;データベースのユーザー名とパスワード
private $db_database; // データベース名
private $conn; // 返されるエントリの数
private $coding
private $bulletin = true; //エラーログが有効かどうか
private $show_error = true //テストフェーズ、表示 セキュリティリスクのあるすべてのエラーはデフォルトでオフになります
private $is_error = false; //エラーが発生したときにすぐに終了するかどうか。問題が発生したときに何も表示されないのはユーザーにとって非常に苦痛であるため、デフォルトは true です。有効にしないことをお勧めします
/*Construction Function*/
public function __construct($db_host,$db_user,$ db_pwd,$db_database,$conn,$coding){
$this->db_host=$db_host;
$this->db_user=$db_user;
$this->db_pwd = $db_pwd;
$this-> ;db_database=$db_database;
$this->gt;conn=$conn;
$this->gt;coding=$coding;
$this->connect ();
}
/*データベース接続*/
public function connect()
{
if($this->conn=="pconn"){
//永続リンク
$this->conn=mysql_pconnect ($this->db_host,$this->db_user, $this->db_pwd);
}else{
// インスタント リンク
$this->gt;conn=mysql_connect($this->db_host,$this->db_user,$this->db_pwd);
}
if(!mysql_select_db($this->db_database,$this->conn)){
if($this->show_error){
$this->show_error("データベースが利用できません:",$ this->db_database);
}
}
mysql_query("SET NAMES $this->coding");
}
/*データベース実行ステートメント、実行可能クエリ、追加、変更、削除などの SQL ステートメント * /
public function query($sql)
{
if($sql == ""){
$this->show_error("sql ステートメント エラー: ","sql クエリ ステートメントが空です");}
$ this->sql = $sql;
$result = mysql_query($this->sql,$this->conn);
if(!$result){
/ / デバッグでエラーが発生したときに使用されます。 SQL ステートメントの場合、自動的に出力されます
if($this->show_error){
$this->show_error("Error sql state: ",$this->sql);
}
}else{
$this->result = $result;
}
return $this->result;
}
/*新しいデータベースを作成して追加*/
public function create_database($database_name){
$database= $database_name ;
$sqlDatabase = 'データベースの作成 '.$database;
$this->query($sqlDatabase);
}
/*サーバー上のすべてのデータベースをクエリ*/
//システム データベースをユーザー データベースから分離します。さらに直感的な表示?
public function show_databases(){
$rs=$this->query("show Databases");
echo "既存のデータベース: ".$amount =$this->db_num_rows($rs);
echo " < ;br />";
$i=1;
while($row = $this->fetch_array($rs)){
echo "$i $row[データベース]";
echo "
";
$i++;
}
}
//ホスト内のすべてのデータベース名を配列形式で返します
public functiondatabases()
{
$rsPtr=mysql_list_dbs($this->conn);
$i =0;
$cnt=mysql_num_rows($rsPtr);
while($i {
$rs[]=mysql_db_name($rsPtr,$i);
$i++;
}
return $rs;
}
/*データベース内のすべてのテーブルをクエリ*/
function show_tables($database_name){
$this->query("show tables");
echo "既存のデータベース:".$amount = $this- > ;db_num_rows($rs);
echo "
";
$i=1;
while($row = $this->fetch_array($rs)){
$columnName="Tables_in_" 。 $database_name;
echo "$i $row[$columnName]";
echo "
";
$i++;
}
}
/*
mysql_fetch_row() array $row[0], $ row[1],$row[2]
mysql_fetch_array() 配列 $row[0] または $row[id]
mysql_fetch_assoc() 配列 $row->コンテンツフィールドは大文字と小文字を区別します
mysql_fetch_object() オブジェクトは $ row を使用します[id],$row[content] フィールドは大文字と小文字が区別されます
*/
/*結果データを取得します*/
public function mysql_result_li()
{
return mysql_result($str);
}
/* レコードセットを取得します, 配列インデックスと関連付けを取得し、$row['content'] を使用します */
public function fetch_array()
{
return mysql_fetch_array($this->result);
}
//関連付け配列を取得し、使用します$row[ 'フィールド名']
public function fetch_assoc()
{
return mysql_fetch_assoc($this->result);
}
//数値インデックス配列を取得し、$row[0],$row[1] を使用します],$row [2]
public function fetch_row()
{
return mysql_fetch_row($this->result);
}
//オブジェクト配列を取得し、$row->content を使用します
public function fetch_Object()
{
return mysql_fetch_object ($this->result);
}
//クエリを単純化 select
public function findall($table)
{
$this->query("SELECT * FROM $table");
}
//クエリを単純化します select
public function select($table,$columnName,$condition)
{
if($columnName==""){
$columnName="*";
}
$this-> query("SELECT $ columnName FROM $table $condition");
}
//削除を単純化します del
public function delete($table,$condition){
$this->query("DELETE FROM $table WHERE $condition ");
}
//挿入を簡略化します
public function insert($table,$columnName,$value){
$this->query("INSERT INTO $table ($columnName) VALUES ($value)");
}
/ /変更の更新を簡素化する
public function update($table,$mod_content,$condition){
$this->query("UPDATE $table SET $mod_content WHERE $condition");
}
/*Get前回の INSERT 操作 生成された ID*/
public function insert_id(){
return mysql_insert_id();
}
//特定のデータ レコードを指す
public function db_data_seek($id){
if($id>0){
$id =$id-1;
}
if(!@mysql_data_seek($this->result,$id)){
$this->show_error("SQL ステートメントが正しくありません:", "指定されたデータが空です" ; ($this->show_error){
$this->show_error("SQL ステートメント エラー","一時的に空で、内容がありません。");
}
}else{
return mysql_num_rows($this->result);
}
}
// 根据insert,update,delete执行结果取得影响行数
public function db_affected_rows(){
return mysql_affected_rows();
}
//输出显示sql语句
public function show_error($message="",$sql=""){
if(!$sql){
echo "
".$message."";
echo "
";
}else{
echo "
";
echo "
";
}
//結果セットを解放する
public function free(){
@mysql_free_result($this->result ) ;
}
//データベースの選択
public function select_db($db_database){
return mysql_select_db($db_database);
}
//フィールド数をクエリ
public function num_fields($table_name){
//return mysql_num_fields ($this ->result);
$this->query("select * from $table_name");
echo "
";
echo "フィールド数: ".$total = mysql_num_fields ($this->result);
echo "
";<BR> for ($i=0; $i<$total; $i++){<BR> print_r(mysql_fetch_field($this->result,$i) ) );<br> }<br> echo "
";
echo "
";
}
//MySQL サーバー情報を取得します
public function mysql_server($num=''){
switch ( $num){
case 1:
return mysql_get_server_info(); //MySQL サーバー情報
Break;
case 2:
return mysql_get_host_info() // MySQL ホスト情報を取得
stop;
return mys ql_get_client_info(); MySQL クライアント情報を取得します
Break;
case 4:
return mysql_get_proto_info(); //MySQL プロトコル情報を取得します
Break;
default:
return mysql_get_client_info(); // デフォルトで mysql のバージョン情報を取得します
}
}
//分析コンストラクター、データベースを自動的に閉じる、ガベージ コレクション メカニズム
public function __destruct()
{
if(!empty($this->result)){
$this->free();
}
mysql_close($ this ->conn);
} //function __destruct();
/*クライアントの実際の IP アドレスを取得*/
function getip(){
if(getenv("HTTP_CLIENT_IP") && strcasecmp(getenv("HTTP_CLIENT_IP") ), "unknown"))
{
$ip = getenv("HTTP_CLIENT_IP");
}
else if (getenv("HTTP_X_FORWARDED_FOR") && strcasecmp(getenv("HTTP_X_FORWARDED_FOR"), "unknown")){
$ ip = getenv("HTTP_X_FORWARDED_FOR");
}
else if (getenv("REMOTE_ADDR") && strcasecmp(getenv("REMOTE_ADDR"), "unknown"))
{
$ip = getenv("REMOTE_ADDR");
}
else if (isset($_SERVER['REMOTE_ADDR']) && $_SERVER['REMOTE_ADDR'] && strcasecmp($_SERVER['REMOTE_ADDR'], "unknown")){
$ip = $_SERVER['REMOTE_ADDR' ];
}
else{
$ip = "unknown";
}
return($ip);
}
}
?>