phpチュートリアルmysqlチュートリアル完全なデータベースチュートリアル接続クラス
*/
クラス mysql {
private $db_host //データベースホスト
private $db_user //データベースユーザー名
private $db_pwd; //データベースのユーザー名とパスワード
private $db_database; //データベース名
private $conn //データベース接続識別子;
private $result; //実行したクエリコマンドの結果リソース識別子
private $sql; // SQL 実行文
private $row; //返されたエントリの数
private $coding; //データベースエンコーディング、gbk、utf8、gb2312
private $bulletin = true //エラーログを有効にするかどうか
; private $show_error = false; //テスト段階ではすべてのエラーが表示されますが、これにはセキュリティ上のリスクがあり、デフォルトでは閉じられます
private $is_error = false; //エラーが検出されたときにすぐに終了するかどうか、デフォルトは true ですが、問題が発生したときに何も表示されないのはユーザーにとって非常に苦痛であるため、有効にしないことをお勧めします/*コンストラクター*/
パブリック関数 __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->conn = $conn;
$this->coding = $coding;
$this->connect();
}/*データベース接続*/
パブリック関数 connect() {
if ($this->conn == "pconn") {
//固定リンク
$this->conn = mysql_pconnect($this->db_host, $this->db_user, $this->db_pwd);
} その他 {
//リンクも
$this->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 ステートメント*/
パブリック関数クエリ($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("エラー SQL ステートメント:", $this->sql);
}
} その他 {
$this->結果 = $結果;
}
$this->result;
を返す }/*新しいデータベースを作成して追加*/
/*サーバー上のすべてのデータベースをクエリ*/
パブリック関数 create_database($database_name) {
$database = $database_name;
$sqldatabase = 'データベースを作成' . $this->クエリ($sqldatabase);
}
//より直観的に表示するために、システム データベースとユーザー データベースを分離しますか?
//ホスト内のすべてのデータベース名を配列形式で返します
パブリック関数 show_databases() {
$this->query("データベースの表示");
echo "既存のデータベース:" . $amount = $this->db_num_rows($rs);
エコー "
";
$i = 1;
while ($row = $this->fetch_array($rs)) {
echo "$i $row[データベース]";
エコー "
";
$i++;
}
}
パブリック関数データベース() {
$rsptr = mysql_list_dbs($this->conn);
$i = 0;
$cnt = mysql_num_rows($rsptr);
while ($i $rs[] = mysql_db_name($rsptr, $i);
$i++;
}
$rs を返します;
}/*データベース内のすべてのテーブルをクエリします*/
パブリック関数 show_tables($database_name) {
$this->query("テーブルを表示");
echo "既存のデータベース:" . $amount = $this->db_num_rows($rs);
エコー "
";
$i = 1;
while ($row = $this->fetch_array($rs)) {
$columnname = "tables_in_" . $database_name;
echo "$i $row[$columnname]";
エコー "
";
$i++;
}
}/*
mysql_fetch_row() 配列 $row[0],$row[1],$row[2]
mysql_fetch_array() 配列 $row[0] または $row[id]
mysql_fetch_assoc() 配列では、大文字と小文字を区別するために $row->content フィールドが使用されます
mysql_fetch_object() オブジェクトは $row[id] を使用し、$row[content] フィールドは大文字と小文字が区別されます
*//*結果データを取得*/
パブリック関数 mysql_result_li() {
mysql_result($str);を返します
}/*レコードセットを取得し、配列インデックスと関連付けを取得し、$row['content'] を使用します */
パブリック関数 fetch_array($resultt="") {
if($resultt<>""){
mysql_fetch_array($resultt)を返します;
}その他{
mysql_fetch_array($this->result)を返します;
}
}//連想配列を取得し、$row['フィールド名']を使用します
パブリック関数 fetch_assoc() {
mysql_fetch_assoc($this->result)を返します;
}//数値インデックス配列を取得し、$row[0]、$row[1]、$row[2]を使用します
パブリック関数 fetch_row() {
mysql_fetch_row($this->result)を返します;
}//オブジェクト配列を取得し、$row->contentを使用します
パブリック関数 fetch_object() {
mysql_fetch_object($this->result)を返します;
}//簡略化されたクエリ選択
パブリック関数 findall($table) {
$this->query("select * from $table");
}//簡略化されたクエリ選択
public function select($table, $columnname = "*", $condition = '', $debug = '') {
$condition = $condition ? ' . $condition : null;
if ($debug) {
エコー "$table $condition から $columnname を選択";
} その他 {
$this->query("$table $condition から $columnname を選択");
}
}//削除を簡略化します del
パブリック関数 delete($table, $condition, $url = '') {
if ($this->query("$condition の $table から削除")) {
if (!empty ($url))
$this->get_admin_msg($url, '削除に成功しました!');
}
}//挿入を簡略化します
public function insert($table, $columnname, $value, $url = '') {
if ($this->query("$table ($columnname) 値 ($value) に挿入")) {
if (!empty ($url))
$this->get_admin_msg($url, '正常に追加されました!');
}
}//簡易修正アップデート
パブリック関数 update($table, $mod_content, $condition, $url = '') {
//echo "update $table set $mod_content where $condition";
if ($this->query("update $table set $mod_content where $condition")) {
if (!empty ($url))
$this->get_admin_msg($url);
}
}/*前の挿入操作によって生成された ID を取得します*/
パブリック関数 insert_id() {
mysql_insert_id() を返します;
}//特定のデータレコードを指します
パブリック関数 db_data_seek($id) {
if ($id > 0) {
$id = $id -1;
}
if (!@ mysql_data_seek($this->result, $id)) {
$this->show_error("SQL ステートメントが正しくありません:", "指定されたデータは空です");
}
$this->result;
を返す }// 根据select查询结果计算结果集条数
public function db_num_rows() {
if ($this->result == null) {
if ($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 "エコー "
";
}//結果セットを解放します
パブリック関数 free() {
@ mysql_free_result($this->result);
}//データベースの選択
パブリック関数 select_db($db_database) {
mysql_select_db($db_database) を返します;
}//フィールド数をクエリ
パブリック関数 num_fields($table_name) {
//return mysql_num_fields($this->result);
$this->query("select * from $table_name");
エコー "
";
echo "フィールドの数:" . $total = mysql_num_fields($this->result);
echo "";<br> for ($i = 0; $i Print_r(mysql_fetch_field($this->result, $i));<br> }<br> echo "";
エコー "
";
}//mysqlサーバー情報を取得します
パブリック関数 mysql_server($num = '') {
スイッチ ($num) {
ケース1:
mysql_get_server_info() //mysql サーバー情報を返します
休憩ケース2:
Return mysql_get_host_info() //mysql ホスト情報を取得します
休憩ケース3:
Return mysql_get_client_info() //mysql クライアント情報を取得します
休憩ケース4:
Return mysql_get_proto_info() //mysql プロトコル情報を取得します
休憩デフォルト:
Return mysql_get_client_info(); // デフォルトで mysql のバージョン情報を取得します
}
}//デストラクター、データベースを自動的に閉じる、ガベージ コレクション メカニズム
パブリック関数 __destruct() {
if (!empty ($this->result)) {
$this->free();
}
mysql_close($this->conn);
} //関数 __destruct();/*クライアントの実際の IP アドレスを取得します*/
関数 getip() {
if (getenv("http_client_ip") && strcasecmp(getenv("http_client_ip"), "unknown")) {
$ip = getenv("http_client_ip");
他
If (getenv("http_x_forwarded_for") && strcasecmp(getenv("http_x_forwarded_for"), "unknown")) {
$ip = getenv("http_x_forwarded_for");
他
If (getenv("remote_addr") && strcasecmp(getenv("remote_addr"), "unknown")) {
$ip = getenv("remote_addr");
他
If (isset ($_server['remote_addr']) && $_server['remote_addr'] && strcasecmp($_server['remote_addr'], "unknown")) {
$ip = $_server['remote_addr'];
} その他 {
$ip = "不明";
}
リターン ($ip);
}
function inject_check($sql_str) { //インジェクションを防止
$check = eregi('select|insert|update|delete|'|/*|*|../|./|union|into|load_file|outfile', $sql_str);
if ($check) {
echo "不正な挿入コンテンツを入力してください!";
終了 ();
} その他 {
$sql_str;
を返します }
}
function checkurl() { //オリジンをチェック
if (preg_replace("/httpstutorial?://([^:/]+).*/i", "1", $_server['http_referer']) !== preg_replace("/([^:] + ).*/", "1", $_server['http_host'])) {
Header("場所: http://www.zhutiai.com");
exit();
}
}}