首页 > 代码库 > php+mysql入门笔记

php+mysql入门笔记

一 :Web开发分为

1.静态web开发(html页面)

2..动态web开发。

发帖,网上支付,发短信,发邮件。

Php是嵌入到html代码中,php脚本运行在服务器端。

 

 

二:数据库编程

1.Mysql

2.Mysqli

pdo

 

1.mysql环境的搭建。

在php。Ini中配置mysql扩展库

Extension=php_mysql.dll.

可以通过phpinfo()函数

在数据库中创建密码时,使用md5进行加密。

中文不能添加的问题。

使用ANSI能添加,使用utf8不能,客户端认gbk码。

使用showvariableslike‘xcharx’;显示出所有对象名的显示类型

技术分享

然后再重新设置。

技术分享

再次查询。

技术分享

 

 

三:编写php程序,完成对用户表的显示。

 

步骤:(mysql数据去)

1.获取连接。

2.选择数据库。

3.设置操作编码。

4.向数据库发送指令。Sql(ddl数据定义语句,dml数据操作语言,dql数据查询语言,dtl数据事物语句)

5..接受返回的结果,并处理。

释放资源,关闭连接。

CREATE  DATABASE test;创建一个数据库;

技术分享

Showdatabases显示所有的数据库

技术分享

Usetest;指定使用哪一个数据库。


技术分享

Showtables;显示指定的数据库的表。

技术分享

创建一张用户表

create table user2(

id int primary key auto_increment,

name varchar(32) not null,

password varchar(64) not null,

email varchar(128) not null,

age tinyint unsigned not null

)

Droptableuser1;删除表

向表中添加数据

insertintouser(name,password,email,age)values(‘aquarius‘,md5(‘123456‘),‘3649872‘,‘18‘);

技术分享

查看表中的数据select*fromuser1;

技术分享

使用该语句对变量类型进行查询

var_dump($res);

网页会输出以下结果。

技术分享

 

一个最简单的php程序完成对数据库的操作。

<span style="font-size:14px;"><?php
$conn=mysql_connect("127.0.0.1","root","421566");
if(!$conn){
	die("连接失败".mysql_error());
}
mysql_select_db("test");
$sql="select*fromuser";
$res=mysql_query($sql,$conn);
//使用该语句对变量类型进行查询
//var_dump($res);
//会依次取出结果集的下一行数据
while($row=mysql_fetch_row($res)){
	//第一种取法,同¥row[i]
//	echo"<br/>$row[0]--$row[1]--$row[2]";
//	echo"<br/>";
//	var_dump($row);
	//第二种取法
	foreach($rowas$key=>$var){
		echo"--$var";
	}
	echo"<br/>";
}
//使用完结果后,一定要及时释放资源
mysql_free_result($res);
//这句话如果没有的话,系统也会自动关闭。
mysql_close($conn);
?></span>


技术分享

 

结果截图。

如果执行的是dql语句,返回的查询结果

如果执行的是dml语句,返回的是bool

从mysqlresult取出查询的结果有如下方式

Mysql_fetch_row//返回一个索引数据

技术分享

 

Mysql_fetch_assoc//返回一个关联数组

技术分享

 

区别在于把字段的名字写进去了

Mysql_fetch_array//返回索引数组和关联数组

技术分享

 

Mysql_fetch_object//把一航数据,当作一个对象返回

技术分享

 

 

四:对表user进行增,删,改操作。(dml操作)

<?php
$conn=mysql_connect("127.0.0.1","root","421566");
if(!$conn){
	die("连接失败".mysql_error());
}
mysql_select_db("test",$conn);
mysql_query("setnamesutf8");
//$sql="insertintouser(name,password,email,age)values(‘金智超‘,md5(‘123‘),‘aquarius@qq.com‘,120)";
//$sql="deletefromuserwhereid=1";
$sql="updateusersetage=100whereid=2";
$res=mysql_query($sql,$conn);
if(!$res){
	die("操作失败".mysql_error());
}
//查看由几条数据
if(mysql_affected_rows($conn)>0){
	echo"操作成功";
}
else{
	echo"没有受影响的行数";
}
?>

 

从上面的文件可以看出,代码的复用性和可维护性不过哦啊,PHP编程中,通常是将对数据库的操作,封装成一个工具类SqlHelper之类。

 

<?php
  classSqlTool{
  	private$conn;
  	private$host="localhost";
  	private$user="root";
  	private$password="421566";
  	private$db="test";
  functionSqlTool(){
  		$this->conn=mysql_connect($this->host,$this->user,$this->password);
  
  		if(!$this->conn){
  			die("connectfailed".mysql_error);
  		}
  		mysql_select_db($this->db,$this->conn);
  		//下面这条语句使用后会在网页中文显示乱码
  //		mysql_query("setnamesutf8");
  	}
  	publicfunctionexecute_dql($sql){
  		
  		$res=mysql_query($sql)ordie((mysql_error));
  		return$res;
  	}
  	publicfunctionexecute_dml($sql){
  		$b=mysql_query($sql,$this->conn);
  		if(!$b){
  			return0;
  		}
  		else{
  			if(mysql_affected_rows($this->conn)>0){
  				return1;//echo"操作成功";
  			}
  			else{
  				return2;//echo"没有受影响的行数";
  			}		
  		}
  }
}
?>

 

 

 

 

 

<?php
/*$conn=mysql_connect("127.0.0.1","root","421566");
if(!$conn){
	die("连接失败".mysql_error());
}
mysql_select_db("test",$conn);
mysql_query("setnamesutf8");
//$sql="insertintouser(name,password,email,age)values(‘金智超‘,md5(‘123‘),‘aquarius@qq.com‘,120)";
//$sql="deletefromuserwhereid=1";
$sql="updateusersetage=100whereid=2";
$res=mysql_query($sql,$conn);
if(!$res){
	die("操作失败".mysql_error());
}
//查看由几条数据
if(mysql_affected_rows($conn)>0){
	echo"操作成功";
}
else{
	echo"没有受影响的行数";
}*/
require_once"SqlTool.class.php";
//$sql="insertintouser(name,password,email,age)values(‘chengwen‘,md5(‘123‘),‘aquarius@qq.com‘,120)";
$sql="select*fromuser";
//创建一个对象
$sqlTool=newSqlTool();
//$sqlTool->execute_dml($sql);
$res=$sqlTool->execute_dql($sql);
while($row=mysql_fetch_object($res)){
	foreach($rowas$key=>$var){
		echo"--$var";
	}
	echo"<br/>";
}
mysql_free_result($res);
?> 

 

 

 错误的原因时静态方法不能操作动态变量。

 

 

五:接受一个表名,然后把表以表格形式显示在网页中。

<?php
  functionshow_tab_info($table_name){
  	$conn=mysql_connect("localhost","root","421566");
  
  	mysql_select_db("test",$conn);
  	$sql="select*from$table_name";
  
  	$res=mysql_query($sql,$conn);  
  	
  //要知道共有多少行和多少列
  $rows=mysql_affected_rows($conn);
  	$colums=mysql_num_fields($res);
  	echo"$rows=$colums";
  
  	echo"<tableborder=1><tr>";
  
  	for($i=0;$i<$colums;$i++){
  		$field_name=mysql_field_name($res,$i);
  		echo"<th>$field_name</th>";
  	}
  	echo"</tr>";
  	
  	while($row=mysql_fetch_row($res)){
  		echo"<tr>";
  		for($i=0;$i<$colums;$i++){
  			echo"<td>$row[$i]</td>";
  		}
  	}
  	
  	echo"</table>";
  //	while($field_info=mysql_fetch_field($res)){
  //		echo"<br/>".$field_info->name;
  //	}
  	
  //	var_dump($filed_info);
  } 
  show_tab_info("user");


技术分享

 

php+mysql入门笔记