PHP全栈学习笔记5

php与mysql数据库,PHP支持很多数据库,与mysql为牛逼组合,mysql数据库的基础知识的掌握是由必要的,要了解如何操作mysql数据库,数据表的方法。

什么是数据库,数据库能做什么,数据库有什么好处,数据库的基础必备技术,备份和恢复的方法。

mysql的好处,功能强大,支持跨平台,运行速度快,支持面向对象,成本低,支持各种开发语言,数据库存储容量大,支持强大的内置函数。

启动MySQL服务器

net start mysql

连接数据库:

mysql  –u root   –h127.0.0.1   –p password

断开MySQL服务器:

quit;

停止MySQL服务器:

 net stop mysql;

mysqladmin –uroot shutdown –proot

数据库的操作:

CREATE [TEMPORARY] TABLE [IF NOT EXISTS] 数据表名
[(create_definition,…)][table_options] [select_statement]
temporary 表示创建一个临时表
if not exists 表示表是否已经存在
create_definition 表的一些特性
select_statement 快速创建表
col_name  type [NOT NULL | NULL] [DEFAULT default_value] [AUTO_INCREMENT]
           [PRIMARY KEY ] [reference_definition]

create table table_name (列名1 属性,列名2 属性…);
col_name 字段名
type 字段类型
not null | null 指出该列是否允许控制
default 表示默认值
auto_increment 表示是否自动编号
primary key 表示是否为主键
一个表只能有一个主键,如果表中没有主键,mysql会返回第一个没有任何null列的unique键,作为主键。
reference_definition 为字段添加注解
create table tb_admin (
id int auto_increment primary key,
user varchar(30) not null,
password varchar(30) not null,
createtime datetime
);

查看表结构:

SHOW  [FULL] COLUMNS  FROM 数据表名 [FROM 数据库名];

DESCRIBE 数据表名;

修改表结构:

ALTER[IGNORE] TABLE 数据表名 alter_spec[,alter_spec]… 

重命名表:

RENAME TABLE 数据表名1 To 数据表名2 

删除表:

DROP TABLE 数据表名;
drop table if exists 数据表名;

数据库的操作:插入已解决insert,查询select,修改update,删除记录delete。

插入记录insert

insert  into 数据表名(column_name,column_name2, … ) values (value1, value2, … )

查询数据库:

select selection_llist from 数据表名 where primary_constraint group by grouping_columns order by sorting_columns having secondary_constraint limit count
表1.字段=表2.字段 and 其他查询条件

select 字段名 from 表1,表2…… where 表1.字段=表2.字段 and 其他查询条件

update 数据表名set column_name = new_value1,column_name2 = new_value2, …where condition

delete from 数据表名 where condition

数据库备份和恢复:

使用MYSQLDUMP命令,进行数据的备份。

mysql -uroot –proot db_database 

php操作数据库

mysql_connect()函数连接mysql服务器

mysql_select_db()函数选择数据库

mysql_query()函数执行sql语句

mysql_fetch_array()函数从数组结果集中获取信息

mysql_fetch_row()函数逐行获取结果集中的每条记录

mysql_num_rows()函数获取查询结果集中的记录数

insert动态添加

select语句查询

update动态修改

delete动态删除

MySQL是一款广受欢迎的数据库
开源的半商业软件
市场占有率高
PHP具有强大的数据库支持能力

查询,显示,插入,更新,删除

关闭MySQL服务器
每使用一次mysql_connect()或mysql_query()函数,都会消耗系统资源。
使用mysql_close()函数关闭与MySQL服务器的连接,以节省系统资源。

mysql_close($Link); 



// mysql_connect('hostname','username','password');


// mysql_select_db ( string数据库名[,resource link_identifier] ) 

// mysql_query("use数据库名"[,resource link_identifier]);
 'localhost',
		'port' => '3306',
		'username' => 'root',
		'password' => 'root',
		'database' => 'dashu' 
);
$conn = @mysql_connect($db['server'].':'.$db['port'],$db['username'],$db['password']);
if (! $conn) {
	echo "服务器不能连!" . mysql_error();
} else {
	// 声明字符集
	mysql_set_charset('utf8', $conn);
	// 选择数据库
	mysql_select_db($db['database'], $conn);
}

mysql_fetch_array()函数从数组结果集中获取信息:

array mysql_fetch_array ( resource result [, int result_type] )

mysql_fetch_object()函数从结果集中获取一行作为对象

object  mysql_fetch_object ( resource result )
对象
 id; ?>
 issuDate; ?>
 first_name; ?>

数组


do{

}while($info=mysql_fetch_array($sql));

mysql_fetch_row()函数逐行获取结果集中的每条记录

array mysql_fetch_row ( resource result )

mysql_num_rows()函数获取查询结果集中的记录数

int mysql_num_rows ( resource result )

PHP操作MySQL数据库

0xa0) { 
            $tmpstr.=substr($str,$i,2); 
            $i++; 
         } 
		else 
            $tmpstr.=substr($str,$i,1); 
    } 
    return $tmpstr; 
}
?>

实例:

onClick="return check(form1);"


alert('公告信息添加成功!');window.location.href='add_affiche.php';";
	mysql_free_result($sql);
	mysql_close($conn);
?>


0xa0) { 
            $tmpstr.=substr($str,$i,2); 
            $i++; 
         } 
		else 
            $tmpstr.=substr($str,$i,1); 
    } 
    return $tmpstr; 
}
?>

update语句动态





公告主题:
公告内容:
 
alert('公告信息编辑成功!');history.back();window.location.href='modify.php?id=$id';"; }else{ echo ""; } ?>


							  页次:/页 记录: 条  
							
							首页 ";
							/*  显示“上一页”超链接  */
							echo "上一页 ";
							}
							/*  如果当前页不是尾页  */
							if($_GET[page]<$page_count){
							/*  显示“下一页”超链接  */
							echo "下一页 ";
							/*  显示“尾页”超链接  */
							echo  "尾页";
							}
							mysql_free_result($sql);
							mysql_close($conn);
							?>

编辑:

alert('公告信息编辑成功!');history.back();window.location.href='modify.php?id=$id';";
}else{
	echo "";
}
?>

alert('公告信息编辑成功!');history.back();window.location.href='modify.php?id=$id';";
}else{
	echo "";
}
?>

练习:



新闻




0xa0) { 
            $tmpstr.=substr($str,$i,2); 
            $i++; 
         } 
		else 
            $tmpstr.=substr($str,$i,1); 
    } 
    return $tmpstr; 
}
?>
热焦新闻
   40){ echo "..."; } ?>  []

封装类数据库连接,操作,分页,字符串截取

dbtype=$dbtype;
    	$this->host=$host;
		$this->user=$user;
		$this->pwd=$pwd;
		$this->dbname=$dbname;
	}
    function GetConnId(){		    						//实现与数据库的连接并返回连接对象
		$this->conn=mysql_connect($this->host,$this->user,$this->pwd) or die("数据库服务器连接错误".mysql_error());
    	mysql_select_db($this->dbname,$this->conn) or die("数据库访问错误".mysql_error());
    	mysql_query("set names gb2312");					//设置数据库的编码格式
    	return $this->conn;									//返回连接对象
    }
	function CloseConnId(){									//定义关闭数据库的方法
    		$this->conn->Disconnect();					//执行关闭的操作
    }
}	

//数据库管理类
class AdminDB{
	function ExecSQL($sqlstr,$conn){					//定义方法,参数为SQl语句和连接数据库返回的对象
		$sqltype=strtolower(substr(trim($sqlstr),0,6));	//截取SQL中的前6个字符串,并转换成小写
		$rs=mysql_query($sqlstr);					//执行SQL语句
		if($sqltype=="select"){						//判断如果SQL语句的类型为SELECT
			$array=mysql_fetch_array($rs);				//执行该语句,获取查询结果
			if(count($array)==0 || $rs==false)			//判断语句是否执行成功
				return false;					//如果查询结果为0,或者执行失败,则返回false
			else
				return $array;					//否则返回查询结果的数组
		}elseif ($sqltype=="update" || $sqltype=="insert" || $sqltype=="delete"){
			//判断如果SQL语句类型不为select、则执行如下操作
			if($rs)
			    return true;						//执行成功返回true
			else 
			    return false;    					//是否返回false
		}
	}
}


//分页类
class SepPage{
	var $rs;
	var $pagesize;					//定义每页显示的记录数
	var $nowpage;					//当前页码
	var $array;
	var $conn;
	var $sqlstr;					//执行的SQL语句
	var $total;
	var $pagecount;					//总的记录数
	function ShowDate($sqlstr,$conn,$pagesize,$nowpage){	//定义方法
		$arrays=array();
		$array_title=array();
		$array_content=array();
		if(!isset($nowpage) || $nowpage=="" || $nowpage==0)			//判断当前页变量值是否为空
			$this->nowpage=1;						//定义当前页的值
		else
			$this->nowpage=$nowpage;				//获取当前页的值
		
		$this->pagesize=$pagesize;					//定义每页输出的记录数
		$this->conn=$conn;							//连接数据库返回的标识
		$this->sqlstr=$sqlstr;						//执行的查询语句
		$this->pagecount=$pagecount;				//总的记录数
		$this->total=$total;						//总的记录数
		
		$this->rs=mysql_query($this->sqlstr."limit ".$this->pagesize*($this->nowpage-1).",$this->pagesize",$this->conn);
		$this->total=mysql_num_rows($this->rs);			//获取记录数
  		if($this->total==0){									//判断如果查询结果为0,则输出如下内容
			return false;	  
	   }else{								//否则
	   		if(($this->total % $this->pagesize)==0){			//判断如果总的记录数除以每页显示的记录数等于0
		  		$this->pagecount=intval($this->total/$this->pagesize);	//则为变量pagecount赋值
			}else if($this->total<=$this->pagesize){
				$this->pagecount=1;//如果查询结果小于等于每页记录数,那么为变量赋值为1	
		  	}else{
		     	$this->pagecount=ceil($this->total/$this->pagesize);	//否则输出变量值
		  	}
			while($this->array=mysql_fetch_array($this->rs)){
				array_push($array_title,$this->array[title]);
				array_push($array_content,$this->array[content]);
			}			
			array_push($arrays,$array_title,$array_content);
			return $arrays;
		}
	}
	function ShowPage($contentname,$utits,$anothersearchstr,$class){
		$allrs=mysql_query($this->sqlstr,$this->conn);		//执行查询语句
		$record=mysql_num_rows($allrs);
		$pagecount=ceil($record/$this->pagesize);		//计算共有几页
		$str.="共有".$contentname." ".$record." ".$utits." 每页显示 ".$this->pagesize." ".$utits." 第 ".$this->nowpage." 页/共 ".$pagecount." 页";
		$str.="    ";
		$str.="首页";
		$str.=" ";
		if(($this->nowpage-1)<=0){ 
			$str.="上一页";
		}else{
			$str.="上一页";
		}
		$str.=" ";	
		if(($this->nowpage+1)>=$pagecount){
			$str.="下一页";
		}else{
			$str.="下一页";
		}
		$str.=" ";
			$str.="尾页";
		if(count($this->array)==0 || $this->rs==false)			
			return "";
		else
		    return $str;	
	}
}
//系统常用方法
class UseFun{
	
	function chinesesubstr($str,$start,$len) { 
    $strlen=$start+$len; 
    for($i=0;$i<$strlen;$i++) { 
        if(ord(substr($str,$i,1))>0xa0) { 
            $tmpstr.=substr($str,$i,2); 
            $i++; 
         } 
		else 
            $tmpstr.=substr($str,$i,1); 
    } 
    return $tmpstr; 
}
	
}

?>
GetConnId();
//数据库操作类实例化
$admindb=new AdminDB();
//分页类实例化
$seppage=new SepPage();
//字符串截取类
$unhtml=new UseFun();

?>

结言

好了,欢迎在留言区留言,与大家分享你的经验和心得。

感谢你学习今天的内容,如果你觉得这篇文章对你有帮助的话,也欢迎把它分享给更多的朋友,感谢。

感谢!承蒙关照!您真诚的赞赏是我前进的最大动力!

你可能感兴趣的:(编程语言,后端,php,PHP全栈从入门到精通)